Passage au Zend Framework 1.8 et l’autoloader
Dev

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.

Visited 1 times, 1 visit(s) today