Consultez la FAQ sur le ZF avant de poster une question
Vous n'êtes pas identifié.
Bonsoir à tous,
Je me pose une question depuis 2-3 jours. Est-ce que le chargement automatique des classes est déjà prévu avec Zend_Application, ce qui explique mes erreurs, ou bien je n'ai pas tout saisie ?
Ma librairie Zend 1.8 se trouve dans l'include_path (C:\wamp\php_includes), et tous les fichiers ont étaient modifiés avec winGrep pour mettre en commentaire les require_once.
J'ai lu à divers endroit qu'il fallait écrire le code suivant pour le chargement automatique des classes :
require_once 'Zend/Loader/Autoloader.php'; $autoloader = Zend_Loader_Autoloader::getInstance();
J'ai écrit ce code dans mon fichier de Bootstrap (public/index.php), avant la création de Zend_Application, mais cela ne fonctionne pas. Voici l'erreur retournée :
Warning: call_user_func(Zend_Loader::loadClass) [function.call-user-func]: First argument is expected to be a valid callback in C:\wamp\php_includes\Zend\Loader\Autoloader.php on line 443 Warning: call_user_func(Zend_Loader::loadClass) [function.call-user-func]: First argument is expected to be a valid callback in C:\wamp\php_includes\Zend\Loader\Autoloader.php on line 443 Fatal error: Class 'Zend_Config_Ini' not found in C:\wamp\php_includes\Zend\Application.php on line 345
Est-ce que quelqu'un pourrait m'expliquer si mon code est juste ou si je dois corriger quelque chose ?
Merci beaucoup, Florent.
Dernière modification par tonton flubb (14-06-2009 00:54:13)
Hors ligne
Personne n'a ce problème ?
Hors ligne
Non, pas ce problème.
D'ailleurs, tes lignes ne servent à rien car, Zend_Application instancie lui-même l'autoloader
Hors ligne
Quelques ressources sur l'autoload :
- http://devzone.zend.com/article/4525-De … Autoloader
- http://akrabat.com/2009/04/30/zend_load … mework-18/
- http://akrabat.com/zend-framework-tutorial/ (zf 1.8)
Hors ligne
Bonsoir à tous,
Merci pour tes liens miboo, j'étais tombé dessus également il y a quelques jours.
J'ai analysé les classes Zend_Application et Zend_Loader_Autoloader, et je me suis aperçu que l'autoloader était bien instancié par Zend_Application. J'ai donc supprimé les lignes inutiles, mais le problème persiste toujours ...
En suivant le parcours du chargement des classes, je m'aperçois que je ne passe jamais dans Zend_Loader::loadClass(). Par contre, cette même méthode est bien enregistré en tant que fonction de charment avec le callback correspondant ...
Quel est le problème ? Est-ce que la version 1.8 ne permet pas l'auto chargement des classes sans require_once ?
Hors ligne
Si c'est possible, il faut seulement ne pas commenter les quelques 'require_once' indispensables.
Hors ligne
Le problème est corrigé ! J'avais en effet des require_once très utiles en commentaire, comme l'appel à Zend_Loader et l'appel à la class de Bootstrap !
Merci beaucoup à tous, bonne soirée.
Florent
Hors ligne