Si vous avez une application qui tourne parfaitement bien sur la version 1.7.8 du zend framework (ou une version plus ancienne d’ailleurs) et que vous voulez passer à la version 1.8, ceci pourra vous aider. En effet, vous aller vite remarquer que plus rien ne fonctionne et vous aurez une erreur du genre :
Notice: Zend_Loader::Zend_Loader::registerAutoload is deprecated as of 1.8.0 and will be removed with 2.0.0; use Zend_Loader_Autoloader instead in /path/Zend/Loader.php on line 207
Pas de panique, c’est simplement la nouvelle gestion des espaces de noms (namespaces) du Zend Framework qui n’est plus compatible. La solution présentée ici et que vous trouverez également dans cet article permet de contourner le problème. Si vous deviez refaire une application en 1.8, il serait probablement préférable de passer par Zend_Application, Zend_Tool_Framework et Zend_Tool_Project.
Pour en revenir à notre cas, vous devez avoir un endroit dans votre code, probablement dans le bootstrap, où vous « lancer » l’autoload :
require_once "../library/Zend/Loader.php"; Zend_Loader::registerAutoload();
Il suffit de remplacer ces lignes par les suivantes, et le tour est joué :
require_once "../library/Zend/Loader/Autoloader.php"; $autoloader = Zend_Loader_Autoloader::getInstance(); $autoloader->setFallbackAutoloader(true);
Amusez-vous bien avec le Zend Framework.
2 comments
MERCI !!!!!!!
J’avais exactement ce problème, et je n’arrêtais pas de relire le /Zend/Loader/Autoloader.php et ne savais pas quelle méthode appeler dans Zend_Loader_Autoloader. Faut dire que je suis quand même un grand novice en la matière 😀
Merci pour l’info 😉
Je suis en train de me remettre à Zend, et ça m’a bien servi!