Passage au Zend Framework 1.8 et l’autoloader

written by netinfluence 4 mai 2009
Passage au Zend Framework 1.8 et l’autoloader

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.

You may also like

2 comments

mouham_m 2 juillet 2009 at 10 h 19 min

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 😀

Reply
Mitch 31 mars 2010 at 22 h 30 min

Merci pour l’info 😉
Je suis en train de me remettre à Zend, et ça m’a bien servi!

Reply

Leave a Comment