Alias et Espaces de noms ======================== 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; - `zii`: représente le dossier de la bibliothèque Zii; - `application`: représente le [répertoire de base](/doc/guide/basics.application#application-base-directory) de l'application; - `webroot`: représente le répertoire contenant le [script d'entrée](/doc/guide/basics.entry). Cet alias est disponible depuis la version 1.0.3. - `ext`: représente le dossier qui contient toutes les [extensions](/doc/guide/extension.overview) tierces. Cet alias est disponible depuis la version 1.0.8. En complément, si l'application utilises des [modules](/doc/guide/basics.module), 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: ~~~ [php] Yii::import('system.web.CController'); ~~~ Il est à noter que la méthode [import|YiiBase::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`. > Tip|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. ~~~ [php] Yii::import('system.web.*'); ~~~ Les alias, en dehors de l'[import|YiiBase::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. > Tip|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.
$Id: basics.namespace.txt 1400 $