Comment utiliser spl_autoload () __autoload() va OBSOLÈTE
Selon http://php.net/manual/en/language.oop5.autoload.php la magie de la fonction __autoload() va devenir OBSOLÈTE et SUPPRIMÉS (!) dans les prochaines versions de PHP. L'officiel alternative est spl_autoload(). Voir http://www.php.net/manual/en/function.spl-autoload.php. Mais le manuel php ne permet pas d'expliquer la bonne utilisation de ce bébé.
Ma question: Comment faire pour remplacer ce (ma classe automatique chargeur automatique)
function __autoload($class) {
include 'classes/' . $class . '.class.php';
}
avec une version avec spl_autoload() ? le Problème est: je ne peux pas comprendre comment donner que la fonction d'un chemin (il n'accepte que les espaces de noms).
Par la voie: Il y a beaucoup de discussions à ce sujet ici SO.com mais aucun ne donne une clean & solution simple qui remplace mon sexy one-liner.
Manuel PHP n'aspire pas à tous.
Eh bien, pour être honnête, il n'. Dans la plupart des cas, il n'est pas facile de comprendre comment quelque chose fonctionne, parce que les docs ont été écrites par total hardcore nerds. Même lorsque vous savez comment quelque chose fonctionne, il n'est pas possible de comprendre l'officiel docs. Pour empirer les choses, dans la plupart des cas, les docs officielles sont corrigées (!) et réécrit par un enfer de beaucoup de commentaires. Des choses comme mysqli, les biscuits ou les séances sont très difficiles à trouver et beaucoup plus difficile à comprendre. Lorsque vous le faites comme dans les exemples, vous allez échouer. C'est un problème général dans les IT & open source: pas de facilité d'utilisation.
J'ai été totalement honnête. La doc me semble clair. Par exemple, pour cette question, la réponse choisie était écrit dans la "Pointe" de la section sur la page vous a donné... Mais maintenant, j'ai juste vu vous a demandé près d'un an, donc il peut avoir changé.
OriginalL'auteur Sliq | 2012-05-21
Vous devez vous connecter pour publier un commentaire.
Vous devez vous inscrire autoload fonctions avec
spl_autoload_register
. Vous devez fournir un "callable". La plus belle façon de le faire, de 5,3 à partir, avec une fonction anonyme:L'avantage principal de cette contre
__autoload
est bien sûr que vous pouvez appelerspl_autoload_register
plusieurs fois, alors que__autoload
(comme toute fonction) ne peut être définie qu'une seule fois. Si vous avez du code modulaire, ce serait un inconvénient important.2018 mise à jour: il ne s'agit pas que de nombreuses occasions où vous besoin rouler vos propres autochargeur. Il y a une norme largement acceptée (appelé PSR-4) et plusieurs conforme implémentations. Le moyen le plus évident de la faire, c'est à l'aide de Compositeur.
Merci, c'est une solution parfaite qui remplace le dessus autoload() chose de 100%.
OriginalL'auteur lonesomeday