09-11-2012, 09:52 PM
Pour ma part, le système du "chaque fichier php ne contient qu'une seule classe" (parfois 1 classe + ses constantes/enums si besoin, mais cela revient à n'avoir qu'une seule classe) me suffit. Si un autre fichier .php a besoin de cette classe, le php nécessiteux fait un require_once du fichier php contenant cette classe, et il ne charge ainsi que les classes dont il a effectivement besoin.
Cela fait peut-être quelques foisonnement d'includes de ci de là, mais au final, je trouve cela beaucoup plus propre et beaucoup plus clair que le fait de masquer des opérations d'include avec autoload.
Un système que je validerai serait plutôt basé sur la précompilation des php: un automate parcourt les fichiers *.php, regarde les classes utilisées, va chercher les noms des *.php contenant les définition de ces classes et insère les include en tête des fichiers php nécessiteux, à l'image de ce que fait Eclipse quand on essaie d'utiliser une classe Java qui n'a pas été importée (Eclipse propose "Ajouter '@import java.nom_de_classe' au fichier courant", là, l'idée serait la même, mais de manière automatique, sans demander au programmeur PHP)
Cela fait peut-être quelques foisonnement d'includes de ci de là, mais au final, je trouve cela beaucoup plus propre et beaucoup plus clair que le fait de masquer des opérations d'include avec autoload.
Un système que je validerai serait plutôt basé sur la précompilation des php: un automate parcourt les fichiers *.php, regarde les classes utilisées, va chercher les noms des *.php contenant les définition de ces classes et insère les include en tête des fichiers php nécessiteux, à l'image de ce que fait Eclipse quand on essaie d'utiliser une classe Java qui n'a pas été importée (Eclipse propose "Ajouter '@import java.nom_de_classe' au fichier courant", là, l'idée serait la même, mais de manière automatique, sans demander au programmeur PHP)