Псевдонимы пути широко используются в Yii. Псевдоним ассоциируется с директорией или путем к файлу. При его указании используется точечный синтаксис, схожий с широко используемым форматом пространств имен:
RootAlias.path.to.target
где RootAlias
- псевдоним существующей директории. Путем вызова метода YiiBase::setPathOfAlias()
мы можем определить новые псевдонимы путей. Для удобства следующие системные псевдонимы уже предопределены:
system
: соответствует директории фреймворка;application
: соответствует базовой директории приложения;webroot
: соответствует директории, содержащей входной скрипт. Этот псевдоним доступен, начиная с версии 1.0.3.ext
: соответствует директории, содержащей все сторонние расширения. Этот псевдоним доступен, начиная с версии 1.0.8.Кроме того, в случае, если приложение использует модули, системный псевдоним предопределяется для каждого идентификатора модуля и соответствует пути к этому модулю. Эта возможность доступна, начиная с версии 1.0.3.
Используя YiiBase::getPathOfAlias(), псевдоним можно преобразовать в соответствующий путь.
Например, system.web.CController
будет преобразован как yii/framework/web/CController
.
Используя псевдонимы, очень удобно импортировать описания классов. К примеру, при необходимости импортировать описание класса CController можно вызвать:
Yii::import('system.web.CController');
Использование метода import более эффективно, чем include
и require
, поскольку
описание импортируемого класса не будет включено до первого обращения. Импорт
одного и того же пространства имён также происходит намного быстрее, чем при использовании include_once
и
require_once
.
Подсказка: Если мы ссылаемся на класс фреймворка, то нет необходимости импортировать или включать их. Все системные классы Yii уже импортированы заранее.
Можно использовать следующий синтаксис для того, чтобы импортировать целую директорию, а файлы классов, содержащиеся в директории, будут подключены автоматически при необходимости.
Yii::import('system.web.*');
Помимо import, псевдонимы также используются во многих других местах, где есть ссылки на классы. Например, псевдоним может быть передан методу Yii::createComponent() для создания экземпляра соответствующего класса, даже если этот класс не был предварительно включен.
Не путайте псевдонимы пути с пространствами имен. Пространства имен служат для логической группировки имен классов, чтобы их можно было отличить от других, даже если их имена совпадают, а псевдонимы пути используются для ссылки на файлы классов или директории. Псевдонимы не конфликтуют с пространствами имен.
Подсказка: Так как версии PHP до 5.3.0 не поддерживают пространства имен, вы не можете создать экземпляры классов с одинаковыми именами, но различными описаниями. По этой причине все названия классов Yii-фреймворка имеют префикс 'C' (означающий 'class'), чтобы их можно было отличить от пользовательских классов. Для пользовательских классов рекомендуется использовать другие префиксы, сохранив префикс 'C' зарезервированным для Yii-фреймворка.
Signup or Login in order to comment.