Yii utilise les alias de manière intensive. Un alias défini l'accès à un dossier ou à un fichier. Les alias s'écrivent en utilisant une notation pointée similaire au format largement utilisé pour déclarer des espaces de nom.
AliasRacine.chemin.vers.la.cible
ou AliasRacine
est un alias vers un dossier existant. Il est possible de
définir de nouveaux alias en appelant YiiBase::setPathOfAlias(). Pour faciliter
les choses, dles alias suivant sont prédéfinis par Yii :
system
: représente le répertoire du framework Yii;application
: représente le répertoire de base de l'application;webroot
: représente le répertoire contenant le script d'entrée. Cet alias est disponible depuis la version 1.0.3.En complément, si l'application utilises des modules, un alias racine est également prédéfini pour chaque ID de module, et représente le répertoire de base du module correspondant. Cette fonctionnalité est disponible depuis la version 1.0.3
YiiBase::getPathOfAlias() est la fonction décodage. Elle permet de transformer
un alias en son chemin correspondant. Par exemple, system.web.CController
sera transformé en yii/framework/web/CController
.
Un alias permet d'importer simplement une classe. Par exemple, pour inclure la définition de la classe CController, il est possible d'effectuer l'appel suivant:
Yii::import('system.web.CController');
Il est à noter que la méthode import est plus efficace
que les directives PHP include
et require
. La définition de la
classe à importer n'étant pas incluse avant que la classe ne soit utilisée.
De la même manière, importer un alias plusieurs fois est plus rapide
que d'utiliser les directives include_once
et require_once
.
Astuce: Il n'est pas nécessaire d'importer ou d'inclure les classes définies par le framework Yii. Tous les classes du core étant pré-importées.
La syntaxe suivante peut être utilisée pour importer automatiquement l'intégralité des classes d'un dossier.
Yii::import('system.web.*');
Les alias, en dehors de l'import, sont utilisés pour référencer des classes. Par exemple, un alias peut être passé à Yii::createComponent() pour créer une instance de la classe correspondante, et ce, même si la classe n'a pas été incluse précédemment.
Il est important de ne pas confondre alias et espace de noms. Un espace de noms permet de grouper de manière logique des classes pour qu'elles puissent être différenciées d'autres classes portant le même nom. Un alias sert uniquement à référencer un fichier de classe ou un dossier. Les alias n'entrent donc pas en conflit avec les espaces de noms.
Astuce : Comme les versions de PHP antérieures à la 5.3.0 ne supportent pas nativement les espaces de noms, il n'est pas possible de créer des instances de deux classes portant un même nom mais ayant des définitions différentes. En conséquence, toutes les classes du framework Yii sont préfixées de la lettre 'C' (pour 'Classe'). Cela permet de les différencier des classes définies par l'utilisateur. Il est donc très fortement recommandé de réserver la lettre 'C' aux classes du framework Yii et d'utiliser d'autres lettres pour les classes utilisateur.
Signup or Login in order to comment.