10-11-2012, 10:55 AM
(10-11-2012, 09:47 AM)Ter Rowan a écrit :Il y a une solution intermédiaire pour l'autoload:(09-11-2012, 09:41 PM)Sephi-Chan a écrit :(09-11-2012, 07:26 PM)Ter Rowan a écrit : m'enfin moi j'aime pas les autoload, je charge toutes mes classes :p
Je ne comprends pas. Comment ne pas aimer l'autoload ?
Charger les classes selon les besoins est à la fois plus pratique et plus efficace.
Je fonctionne (comme probablement bcp de monde) avec des répertoires
Du coup l autoload ne se résume pas a incluse "mesClasses/".$nomClasse
A partir de la je ne vois que deux solutions pour l autoload:
Avoir une matrice exhaustive qui lie classeCherchee a repertoireClasseRecherchee (probablement la meilleure mais ça bouffe de la mémoire ?)
Nommer ses classes avec tout le chemin, mais dans ce cas la, on se retrouve a écrire des noms de classes d une longueur effarante.
De fait je suis comme Xenos la dessus
J'utilise une matrice dynamique car en cache.
Si la classe est dans la matrice, je charge le fichier correspond; si la classe ou le fichier n'est pas trouvé, je supprime l’occurrence de la matrice.
Si la classe n'est toujours pas présente, je parcours récursivement les répertoires pouvant contenir les classes jusqu'à ce que je la trouve puis je la stocke dans la matrice. La recherche se limite au nom du fichier car j'ai imposé une corrélation forte entre le nom de la classe et le nom du fichier.
Pour la gestion mémoire, le fichier de stockage de la matrice en JSON fait environ 100o par classe (ex:111 classes <=> 10560 octets)