Question

enter image description here

J'ai la structure de répertoires suivante, j'y mets toutes mes classes classes/ comme indiqué ci-dessous, et j'ai un header.php qui appelle à la fois tous les fichiers et possède d’autres paramètres importants que tous les fichiers partagent.

Maintenant, si j'utilise spl_autoload_register() Par ici:

spl_autoload_register(function($class){
        include 'classes/'. $class .'.class.php';
    });

à l'intérieur inc/header.php fichier et appelle ça header.php de mon index fichier, cela fonctionne bien sur mon hôte local, mais lorsque je télécharge tout le script tel quel sur un hôte en direct, j'obtiens des erreurs du type.

Warning: include(classes/filehandler.class.php) [function.include]: failed to open stream: No such file or directory in /home/.../public_html/....com/inc/header.php on line 9 

Line 9 est le spl_autoload_register()

Je ne comprends pas comment cela a pu arriver, et j'espère que quelqu'un a une idée.

merci

Était-ce utile?

La solution

Pour montrer ce que je veux dire avec mes commentaires, ajoutez ce code dans votre fichier index.php et supprimez l'autoloader de vos autres fichiers :

spl_autoload_register(function($class){
    $classesPath = dirname(__FILE__) . '/classes/';
    if (is_file($classFile = $classesPath . $class.'.class.php')) {
        include $classFile;
    }
});

Pour inc/header.php :

spl_autoload_register(function($class){
    $classesPath = dirname(__FILE__) . '/../classes/';
    if (is_file($classFile = $classesPath . $class.'.class.php')) {
        include $classFile;
    }
});
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top