la fonction __autoload()

Eléphant du PHP | 130 Messages

20 mars 2008, 11:53

Bonjour,

Pour éviter d'utiliser beaucoup de require et include, on utilise la fonction __autoload(), ok.

Je voudrais savoir comment sont sauvegardés l'association classe/fichier, est-ce dans un tableau associatif ?
Et où est placé la fonction __autoload() et comment faut-il l'appeler ?

Merci beaucoup pour l'information.
Le vent souffle où il veut et tu en entends le bruit,
Mais tu ne sais d'où il vient, ni où il va ...

ViPHP
ViPHP | 4674 Messages

20 mars 2008, 12:15

Bonjour,

en général on utilise __autoload() avec les conventions de nommage. Par exemple, ta classe appelée est : Projet_Controller_Front, alors on va chercher le fichier ./Projet/Controller/Front.php et charger la classe Projet_Controller_Front.

La méthode __autoload() se situe où tu veux. En général, dans un fichier de haut-niveau (inclue par tous les autres), genre bootstrap ou fichier de gestion d'un framework etc.

La méthode __autoload() est appelée automatiquement lorsque le système ne trouve pas la classe, i.e. qu'elle n'est pas chargée en mémoire (qu'elle n'a pas été inclue). On va dire qu'avant d'avoir une erreur comme quoi il n'a pas trouvé la classe, il va tenter d'appeler __autoload() juste avant, en dernier recours.

Un coup d'oeil dans le manuel pourrait être utile.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Eléphant du PHP | 130 Messages

20 mars 2008, 16:22

Merci HyWaN :D :D
Le vent souffle où il veut et tu en entends le bruit,
Mais tu ne sais d'où il vient, ni où il va ...