Chargement automatique des fichiers
En php, quand on utilise plusieurs fichiers, on doit les charger, par exemple si un fichier A a besoin d'un code définit dans un fichier B, on va utiliser un include ou require pour charger le fichier et pouvoir l'utiliser.
L'autoload, c'est une méthode qui va s'occuper de faire ces chargements de fichiers dès qu'on utilise une classe. C'est à dire que lorsque l'on va instancier la classe Router, avec un new Router(), l'autoload va chercher s'il trouve le fichier associé, et l'inclure pour nous.
Pour cela on utilise la fonction spl_autoload_register
Je te donne un exemple pour charger les fichiers du Framework :
{"language":"application/x-httpd-php","content":"<?php\n\tspl_autoload_register(function($class){\n\t\tif(file_exists('Framework/' . $class . '.php'))\n\t\t{\n\t\t\trequire_once('Framework/' . $class . '.php');\n\t\t}\n\t});","filename":"index.php"}

Il est passé automatiquement par php lors d'une instance, pour reprendre l'exemple d'avant, si tu fait un new Router() et que la classe Router n'est pas définit, la fonction d'autoload sera appelée, et $class aura pour valeur "Router".
Include, require, _once

Il y a une petite nuance, déjà il y a include et require qui sont différents, les deux permettent de charger un fichier, mais si le fichier n'est pas trouvé, include lèvera un warning et continuera l’exécution du code, alors que require lèvera une erreur bloquante, empêchant l’exécution de la suite du code.
Les deux existent avec le suffixe _once, la différence est que le fichier ne sera chargé qu'une seule fois, si on fait deux fois include de suite du même fichier, celui là sera inclus deux fois de suite, dupliquant le résultat, avec include_once, la deuxième fois, l'instruction sera tout simplement ignorée.
Etant donné que l'on charge des classes dans le cas présent, il est inutile de charger plusieurs fois le même fichier, ça n'apporterait rien de plus, et risquerai en plus de générer des erreurs. Donc le require_once permet d'éviter ce risque.
Un autoload pour mon framework

Attention, cette méthode ne doit permettre de charger que des fichiers de classes, donc pas de vue, ni de css, de js ou de média.

{"language":"application/x-httpd-php","content":"<?php\n\tspl_autoload_register(function($class){\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":"index.php"}

Pas tout à fait, tu as oublié un dossier que l'on avait créé récemment, les exceptions.

Effectivement, je n'avais pas prévu d'aborder ça pour le moment, mais c'est une bonne idée. Je te propose que l'on fasse un fichier de configuration qui nous servira à paramétrer ça facilement si ça te dit. J'ai terminé cette partie