Erreur avec la fonction spl_autoload_register

Résolu
thibautB Messages postés 148 Statut Membre -  
thibautB Messages postés 148 Statut Membre -
Bonsoir,
Je suis entrain d'apprendre la POO sur openclassroom mais j'ai un soucie avec la fonction spl_autoload_register et ne la comprend pas trés bien.
Quand j'active mon script les erreurs afficher sont

Warning: require(PersonnagesManager.php): failed to open stream: No such file or directory in C:\Users\Thibaut\PhpstormProjects\POO\projet1\page_jeux.php on line 5

Fatal error: require(): Failed opening required 'PersonnagesManager.php' (include_path='.;C:\php\pear') in C:\Users\Thibaut\PhpstormProjects\POO\projet1\page_jeux.php on line 5
et mon code est :


function ChargerClasse($classname)
{
require $classname.'.php';
}
spl_autoload_register('ChargerClasse'); //charge automatiquement une classe



Pouvez m'aider s'il vous plait

1 réponse

  1. jordane45 Messages postés 30427 Date d'inscription   Statut Modérateur Dernière intervention   4 832
     
    Bonjour,

    Quelle est l'arborescence de ton site ?
    Dans quel répertoire se trouvent tes class ?
    Sont elles dans le même répertoire que le fichier qui les inclus ou dans un autre ?

    Dans ta fonction tu dois préciser le chemin dans lequel les class se trouvent (en partant de la racine du site)

    regardes les exemples de la doc :
    https://www.php.net/manual/fr/function.spl-autoload-register.php

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

    0
    1. thibautB Messages postés 148 Statut Membre 1
       
      ah ok je comprend mieux et elle son dans le même fichier.
      Merci je vais tester ça ^^
      0
    2. thibautB Messages postés 148 Statut Membre 1
       
      Solution trouver ma classe n'avait pas le même nom que mon fichier ^^"
      0