Commentaires
Pour commener, tu va faire un fichier de configuration.

Arthur, l'apprenti développeurEn JSON je parie !

Oui, comme pour les routes, le JSON est plutôt bien adapter, mais ce n'est pas obligatoirement JSON, on peut utiliser d'autres format aussi. Pour rester cohérent, vu que les routes sont en JSON, on va faire de même pour la config.

Quelles informations tu penses mettre dedans?

Arthur, l'apprenti développeurLes dossiers à chargé dans l'autoload déjà, et la connexion à la base de données, je sais que c'est plus sécurisé dans le fichier de configuration, mais je ne sais pas pourquoi.

Ce n'est pas nécessairement plus sécurisé dans un fichier de config, tout dépend les droits d'accès aux fichiers, mais c'est une autre histoire. Par contre c'est effectivement bien de mettre ces informations dans un fichier de configuration, ça nous permettra de pouvoir modifier très facilement ces informations sans avoir à modifier le code en lui même. On y reviendra aussi par la suite, faisons déjà une première version simple de ce fichier.

{"language":"application/json","content":"{\n\t\"autoloadFolder\": [\n\t\t\"Framework\",\n\t\t\"Controller\",\n\t\t\"Model\",\n\t\t\"Framework/Exception\"\n\t],\n\t\"database\": {\n \"name\": \"Ma base de données\",\n \"dbname\": \"database\",\n \"host\": \"localhost\",\n \"user\": \"user\",\n \"password\": \"pwd\"\n }\n}","filename":"config.json"}


Et maintenant, il va falloir manipuler ça, tu as déjà vu comment charger un fichier json, je te laisse faire.

Arthur, l'apprenti développeurOk donc dans l'index je peux directement chargé le fichier.

{"language":"application/x-httpd-php","content":"<?php\n\t$configFile = file_get_contents(\"Config/config.json\");\n\t$config = json_decode($configFile);\n\n\tspl_autoload_register(function($class)\n\t{\n\t\tif(file_exists('Framework/' . $class . '.php'))\n\t\t{\n\t\t\trequire_once('Framework/' . $class . '.php');\n\t\t}\n\t\tif(file_exists('Controller/' . $class . '.php'))\n\t\t{\n\t\t\trequire_once('Controller/' . $class . '.php');\n\t\t}\n\t\tif(file_exists('Model/' . $class . '.php'))\n\t\t{\n\t\t\trequire_once('Model/' . $class . '.php');\n\t\t}\n\t});","filename":""}


C'est bien ça, maintenant il faut rendre l'autoload plus générique, je te rappelle tout de même, que la variable config n'existera pas dans la fonction anonyme de l'autoload, pour un problème de portée.

Arthur, l'apprenti développeurAh oui, on peut utiliser le mot clé use ici aussi?

Tout à fait !

{"language":"application/x-httpd-php","content":"<?php\n\t$configFile = file_get_contents(\"Config/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}\n\t\t}\n\t});","filename":"index.php"}


Je vois que tu apprend vite, c'est plutôt bien ce que tu as fait. Juste un petit détail, si la classe est trouvée dès le premier dossier, la boucle continue pour essayer de le trouver ailleurs, il faudrait utiliser une instruction pour sortir de cette boucle quand on a trouvé le fichier. Tu as déjà utiliser le break?

Arthur, l'apprenti développeurOui, mais c'est pour le switch ça non?

On le voit souvent dans le switch effectivement, mais pas que ! Je te laisse voir la documentation à ce sujet

Arthur, l'apprenti développeurJ'ai compris !

{"language":"application/x-httpd-php","content":"<?php\n\t$configFile = file_get_contents(\"Config/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});","filename":"index.php"}


Parfait, on va pouvoir passer à la suite de l'index, l'appel du routeur. J'ai terminé cette partie
Demander de l'assistance