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
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 :
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 !!!
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.