Oui c'est bien ça, l'idée est de réussir à récupérer la route associée à notre httpRequest.
Ok, je me lance !
{"language":"application/x-httpd-php","content":"<?php\n\t$configFile = file_get_contents(\"ConfigFile/config.json\");\n\t$config = json_decode($configFile);\n\n\tspl_autoload_register(function($class) use($config)\n\t{\n\t\tforeach($config->autoloadFolder as $folder)\n\t\t{\n\t\t\tif(file_exists($folder . '/' . $class . '.php'))\n\t\t\t{\n\t\t\t\trequire_once($folder . '/' . $class . '.php');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t});\n\t\t\t\t\t\t \n\t$router = new Router();\n\t$router->findRoute();","filename":"index.php"}
C'était simple !
Tu a oublié quelques petits détails tout de même, déjà la méthode findRoute() prend un paramètre $httpRequest et retourne une route si elle a été trouvée. Et il serait préférable d'utiliser un try/catch sur ces instructions, pour attraper les éventuelles exceptions levées.
Ah oui tu as raison.
{"language":"application/x-httpd-php","content":"<?php\n\t$configFile = file_get_contents(\"ConfigFile/config.json\");\n\t$config = json_decode($configFile);\n\n\tspl_autoload_register(function($class) use($config)\n\t{\n\t\tforeach($config->autoloadFolder as $folder)\n\t\t{\n\t\t\tif(file_exists($folder . '/' . $class . '.php'))\n\t\t\t{\n\t\t\t\trequire_once($folder . '/' . $class . '.php');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t});\n\ttry\n\t{\n\t\t$httpRequest = new HttpRequest();\n\t\t$router = new Router();\n\t\t$route = $router->findRoute($httpRequest);\n\t}\n\tcatch(Exception $e)\n\t{\n\t\techo \"Une erreur s'est produite\";\n\t}","filename":"index.php"}
C'est mieux, mais je te propose que nous ajoutions une propriété "route" à notre classe HttpRequest, afin d'enregistrer la route trouvé directement dedans plutôt que dans une variable.
Je fais ça !
{"language":"application/x-httpd-php","content":"<?php\n\tclass HttpRequest\n\t{\n\t\tprivate $_url;\n\t\tprivate $_method;\n\t\tprivate $_param;\n\t\tprivate $_route;\n\t\t\n\t\tpublic function __construct()\n\t\t{\n\t\t\t$this->_url = $_SERVER['REQUEST_URI'];\n\t\t\t$this->_method = $_SERVER['REQUEST_METHOD'];\n\t\t}\n\t\t\n\t\tpublic function getUrl()\n\t\t{\n\t\t\treturn $this->_url;\t\n\t\t}\n\t\t\n\t\tpublic function getMethod()\n\t\t{\n\t\t\treturn $this->_method;\t\n\t\t}\n\t\t\n\t\tpublic function getParams()\n\t\t{\n\t\t\treturn $this->_params;\t\n\t\t}\n\t\t\n\t\tpublic function setRoute($route)\n\t\t{\n\t\t\t$this->_route = $route;\t\n\t\t}\n\t}","filename":"HttpRequest.php"}
{"language":"application/x-httpd-php","content":"<?php\n\t$configFile = file_get_contents(\"ConfigFile/config.json\");\n\t$config = json_decode($configFile);\n\n\tspl_autoload_register(function($class) use($config)\n\t{\n\t\tforeach($config->autoloadFolder as $folder)\n\t\t{\n\t\t\tif(file_exists($folder . '/' . $class . '.php'))\n\t\t\t{\n\t\t\t\trequire_once($folder . '/' . $class . '.php');\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t});\n\ttry\n\t{\n\t\t$httpRequest = new HttpRequest();\n\t\t$router = new Router();\n\t\t$httpRequest->setRoute($router->findRoute($httpRequest));\n\t}\n\tcatch(Exception $e)\n\t{\n\t\techo \"Une erreur s'est produite\";\n\t}","filename":"index.php"}
Parfait, on a pu récupérer notre route, on approche du premier appel. On va passer à la suite, je te laisse deviner.
L’exécution de la route pour appeler un contrôleur?
Pas encore, il nous reste quelques petites étapes avant, à commencer par la récupération des paramètres de requête. J'ai terminé cette partie