J'essaie de charger automatiquement une classe, mais mon chargeur automatique ne semble pas s'enregistrer correctement.PHP - L'autochargeur ne fonctionne pas lors de l'enregistrement EDIT
Folder/File structure
:
- zest.php
- est
- a.thing.php
**zest.php**
:
<?php
$aThing = new a;
$aThing->test();
function my_autoloader($class) {
include 'aest/' . $class . '.thing.php';
}
spl_autoload_register('my_autoloader');
?>
**a.thing.php**
:
<?php
class a {
public function test() {
echo 'test';
}
}
J'ai tiré cet exemple directement à partir php.net, ce qui ne va pas avec elle?
La fonction autoloader n'est pas appelée du tout.
Pas même quand il est une fonction Anoymous:
spl_autoload_register(function($class) {
echo 'calling '.$class;
include 'aest/'.$class . '.test.php';
});
Cela devrait fonctionner. Avez-vous des erreurs? Essayez de le déboguer, êtes-vous sur le bon chemin? Faites un 'var_dump (getcwd());' dans votre autoload .. – vaso123
@lolka_bolka 'Class '' not found ...' est l'erreur. 'var_dump (getcwd());' ne fait rien, ce qui signifie que le registre ne fonctionne pas, mais je suis incapable de trouver pourquoi; pas même une fonction anonyme enregistre ... –
kgongonowdoe
Je pense que vous avez une faute de frappe dans 'include 'aest /'. $ class. '.thing.php'; 'il doit être 'include' east/'. $ class. '.thing.php'; ' – MAZux