8768 sujets

Développement web côté serveur, CMS

Bonjour à tous
Mieux vaut tard que jamais ! Après plus de 10 ans d'utilisation du php, je viens de découvrir l'utilisation du chargement automatique des classes.
En fait, j'ai voulu définir dans un programme php une classe qui portait le même nom qu'une classe définie dans un autre programme. Je n'avais pas fait de "include_once" de cet autre programme, et le nouveau programme plantait au chargement sans que je comprenne pourquoi. J'ai fini par comprendre la cause de cette erreur, ce qui du reste m'a pas mal aidé dans l'écriture de cette nouvelle fonction.

J'avais bien vu une référence à "auto load" dans la doc, mais je n'y avais rien compris... et du reste je n'y comprends toujours rien!
Je n'ai évidemment fait aucun appel à aucune fonction du genre spl_autoload_register, je suis dans le noir complet pour savoir dans quelles conditions une classe est chargée automatiquement ou non.
Auriez vous un document à me recommander qui soit un peu moins confus que ce qui est dit dans http://php.net/manual/fr/language.oop5.autoload.php ?
Merci de contribuer à réduire un peu mon ignorance.
Integrator a écrit :
regarde le tuto de grafikart sur l'autoload :

https://www.youtube.com/watch?v=BzJltEYYbMo

Il montre comment utiliser la fonction spl_autoload_register().

C’est bien ce que j’ai fait, mais ce que je ne comprends pas c’est que je n’ai pas utilisé cette fonction et que pourtant l’environnement PHP du serveur que j’utilise considère que les classes en question sont déjà connues.
Je ne me plains pas de cette situation, je voudrais simplement comprendre ce qui se passe.
Après inspection du code, je constate que les classes en question étaient chargées indirectement par l'appel à un programme php qui est systématiquement appelé par include_once en tête de tous mes programmes.
Il n'y a donc pas de chargement automatique des classes.
Désolé de vous avoir contactés pour si peu de chose!