• # Autochargement des classes

    Posté par . En réponse au message Y'a-t-il des /packages/ en PHP, comme en java ?. Évalué à 2.

    Il existe un mécanisme en PHP pour faire de l'autochargement des classes. Dans un script qui utilise des classes, il faut définir une fonction de portée globale __autoload, comme suit :
     
    function __autoload($class_name)
    {
     include('class_' . $class . '.php') ;
    }
    
    Cette fonction __autoload est appelée par le script PHP dès qu'un appel à une classe non définie est réalisée. $class_name est la chaine contenant le nom de la classe appelée (attention : "$class_name" est en minuscule même si la classe originale contient des majuscules). D'après mon exemple, si je fais quelque chose comme :
     $mon_objet = new ObjectType() ;
    
    , et que la classe ObjectType n'est pas encore définie, la fonction __autoload est appelée (si elle est définie dans la portée globale) avec l'argument "objecttype". Après, il faut étudier les possibilités, comme par exemple utiliser un préfixe pour les noms de fichier, comme dans mon exemple, nommer (ou pas) tous les fichiers de classe avec comme 'class_classname.php' , etc. Tout se passe dans le corps de la fonction __autoload(). le lien vers la documentation