Bonjour,

Voila je rencontre un petit problème avec mon code, je dois charger mes class, j'utilise donc l'autoloader vue dans la formation POO sur ce site.

class Autoloader
{
    static function register(){
        spl_autoload_register(array(__CLASS__, 'autoload'));
    }

    static function autoload($class)
    {
        if(strpos($class, __NAMESPACE__.'\\') === 0){
            $class = str_replace(__NAMESPACE__.'\\', '', $class);
            $class = str_replace('\\', '/', $class);
            require __DIR__.'/'.$class.'.php';
        }
    }

}

En local, ça fonctionne correctement mais en ligne, c'est une autre histoire. mon site est placé dans plusieurs sous dossier
home/serveur/www/app.myapp puis web/index.php pour l'amorçage. (serveur ovh, php 5.5 la même version que sur mon wamp)

Je pense que cette ligne pose problème :

require __DIR__.'/'.$class.'.php';

L'erreur que j'obtien est :

Warning: require(/home/bluewirehh/www/app.bluewire/core/Auth/DBAuth.php): failed to open stream: No such file or directory in /home/bluewirehh/www/app.bluewire/core/Autoloader.php on line 15

Fatal error: require(): Failed opening required '/home/bluewirehh/www/app.bluewire/core/Auth/DBAuth.php' (include_path='.:/usr/local/php5.5/lib/php') in /home/bluewirehh/www/app.bluewire/core/Autoloader.php on line 15

4 réponses


Azorgh
Réponse acceptée

C'est juste qu'il prend le chemin absolu par rapport à ton système. Cela permet d'éviter pas mal de soucis.
N'as tu pas de soucis de majuscule dans le nom de ton fichier ou autre ?

Hello,

L'erreur est simple, mais as tu un fichier qui se nomme /core/Auth/DBAuth.php ? Je pense que :

  • Non
  • Oui, mais tu as une erreur dans ton chemin de fichier.
cid5420
Auteur

Oui j'ai bien ce fichier.
Alors je ne comprend pas trop, car vue le message d'erreur si je regarde le chemin du fichier en question, il est bon enfin ce qui me dérange c'est que le chemin commence par /home/bluewirehh/www/ et non app.bluewire/core/Auth/DBAuth.php.

Je retourne le problème dans tout les sens !!!

cid5420
Auteur

Bien joué, pffff je suis dégouté, ça fait 2 jours que je suis dessus et effectivement problème de majuscule DbAuth au lieu de DBAuth.