-1

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'; 
}); 
+0

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

+0

@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

+0

Je pense que vous avez une faute de frappe dans 'include 'aest /'. $ class. '.thing.php'; 'il doit être 'include' east/'. $ class. '.thing.php'; ' – MAZux

Répondre

0

Ughh ... spl_autoload_register('AutoLoader') doit être appelé avant toute tentative d'instancier une classe qui doit être fait est chargé automatiquement.