Yii 1.1.x et auto-chargement avec Composer

yii
Standard

Composer, sans doute est un grand pas vers une manipulation facile des frameworks et librairies tierces (dépendance), il est normalisé grâce à la communauté et profite bien des nouvelles fonctionnalités comme les espaces de nom du PHP.

Si vous êtes comme moi et vous avez des applications à maintenir avec Yii 1.1.x (PHP>=5.1.2) et vous voulez gérer les dépendances de votre application avec composer rien nous vous empêche de le faire, Yii supporte l’auto-chargement des classes (autoloading) depuis sa version 1.0.0 qui est sortie en 2008 et permet d’ajouter des auto-chargeur personnaliser, non seulement ça, il permet de créer des espaces de nom (namspace) qui les a nommés aliases.

Dans cet exemple je vais ajouter l’ORM Doctrine dans mon projet Yii, pour cela il faut s’assurer que le fichier composer.json existe dans le dossier « protected » du projet Yii et installer Doctrine comme indiquer dans la documentation de l’ORM, composer va télécharger et placer l’ORM  (entre autres) et les fichiers de configuration dans protected/vendor.

Intégration de l’auto-chargeur du composer dans Yii

– Dans le fichier index.php qui est dans la racine de votre application et ajouter cette ligne:

...
$composerAutoloader=require_once __DIR__ . '/protected/vendor/autoload.php';
...

– Avant de lancer votre application il faut enregistrer l’auto-chargeur:

Yii::registerAutoloader(array($composerAutoloader,'loadClass'),true);

Il faut s’assuer que les 2 lignes ont étés ajoutés avant le lancement de l’application

Yii::createWebApplication($config)->run();

Et voilà, maintenant je peux utiliser Doctrine dans mon projet Yii sans problème.

L’auto-chargement des classes (autolaoding) existe dans PHP depuis la version 5.1.2 et c’est pas composer qui l’a créé et c’est pas une fonctionnalité qui dépend de lui.

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *