Псевдонимы
Псевдонимы используются для представления путей к файлам или URL-адресов, чтобы вам не приходилось жестко кодировать абсолютные пути или URL-адреса в вашем проекте. Псевдоним должен начинаться с символа @ , чтобы отличать его от обычных путей к файлам и URL-адресов. Псевдонимы, определенные без ведущего символа @, будут дополнены символом @.
В Yii уже доступно множество предопределенных псевдонимов. Например, псевдоним @yii представляет путь установки фреймворка Yii; @web представляет базовый URL для текущего веб-приложения.
Определение псевдонимов
Вы можете определить псевдоним для пути к файлу или URL-адреса, вызвав Yii::setAlias():
// an alias of a file path
Yii::setAlias('@foo', '/path/to/foo');
// an alias of a URL
Yii::setAlias('@bar', 'http://www.example.com');
Примечание: Путь к файлу или URL-адрес, для которого задается псевдоним, не обязательно должен ссылаться на существующий файл или ресурс.
Учитывая определенный псевдоним, вы можете получить новый псевдоним (без необходимости вызова Yii::setAlias()), добавив слеш / и один или несколько сегментов пути. Определенные с помощью Yii::setAlias() псевдонимы становятся корневыми псевдонимами, а полученные из них — производными псевдонимами. Например, @foo — это корневой псевдоним, а @foo/bar/file.php — производный псевдоним.
Вы можете определить псевдоним, используя другой псевдоним (корневой или производный):
Yii::setAlias('@foobar', '@foo/bar');
Корневые псевдонимы обычно определяются на стадии инициализации. Например, вы можете вызвать Yii::setAlias() в скрипте входа. Для удобства, приложение предоставляет свойство для записи с именем aliases, которое вы можете настроить в конфигурации приложения:
return [
// ...
'aliases' => [
'@foo' => '/path/to/foo',
'@bar' => 'http://www.example.com',
],
];
Разрешение псевдонимов
Вы можете вызвать Yii::getAlias(), чтобы преобразовать корневой псевдоним в соответствующий путь к файлу или URL-адрес. Такая же функция может преобразовать производный псевдоним в соответствующий путь к файлу или URL-адрес:
echo Yii::getAlias('@foo'); // displays: /path/to/foo
echo Yii::getAlias('@bar'); // displays: http://www.example.com
echo Yii::getAlias('@foo/bar/file.php'); // displays: /path/to/foo/bar/file.php
Путь/URL, представленный производным псевдонимом, определяется путем замены части корневого псевдонима соответствующим путем/URL в производном псевдониме.
Примечание: Метод Yii::getAlias() не проверяет, ссылается ли полученный путь/URL на существующий файл или ресурс.
Корневой псевдоним также может содержать символы слеша /. Метод Yii::getAlias() достаточно умен, чтобы определить, какая часть псевдонима является корневым псевдонимом, и правильно определить соответствующий путь к файлу или URL-адрес:
Yii::setAlias('@foo', '/path/to/foo');
Yii::setAlias('@foo/bar', '/path2/bar');
Yii::getAlias('@foo/test/file.php'); // displays: /path/to/foo/test/file.php
Yii::getAlias('@foo/bar/file.php'); // displays: /path2/bar/file.php
Если @foo/bar не определен как корневой псевдоним, последнее утверждение отобразит /path/to/foo/bar/file.php.
Использование псевдонимов
Псевдонимы распознаются во многих местах в Yii без необходимости вызова Yii::getAlias() для их преобразования в пути или URL-адреса. Например, yii\caching\FileCache::$cachePath может принимать как путь к файлу, так и псевдоним, представляющий путь к файлу, благодаря префиксу @, который позволяет отличать путь к файлу от псевдонима.
use yii\caching\FileCache;
$cache = new FileCache([
'cachePath' => '@runtime/cache',
]);
Обратите внимание на документацию API, чтобы увидеть, поддерживает ли свойство или параметр метода псевдонимы.
Предопределённые псевдонимы
Yii предопределяет набор псевдонимов для удобной ссылки на часто используемые пути к файлам и URL-адреса:
-
@yii, каталог, в котором находится файлBaseYii.php(также называемый каталогом фреймворка). -
@app, базовый путь текущего приложения. -
@runtime, временный путь текущего приложения. По умолчанию@app/runtime. -
@webroot, корневой каталог текущего веб-приложения. Определяется на основе каталога, содержащего скрипт входа. -
@web, базовый URL текущего веб-приложения. Имеет то же значение, что и yii\web\Request::$baseUrl. -
@vendor, каталог пакета Composer. По умолчанию@app/vendor. -
@bower, корневой каталог, содержащий пакеты bower. По умолчанию@vendor/bower. -
@npm, корневой каталог, содержащий пакеты npm. По умолчанию@vendor/npm.
Псевдоним @yii определяется при включении файла Yii.php в ваш скрипт входа. Остальные псевдонимы определяются в конструкторе приложения при применении конфигурации приложения.
Псевдонимы расширений
Для каждого расширения, установленного через Composer, автоматически определяется псевдоним. Каждый псевдоним имеет имя, соответствующее корневому пространству имён расширения, как указано в его файле composer.json, и каждый псевдоним представляет корневой каталог пакета. Например, если вы установили расширение yiisoft/yii2-jui, у вас автоматически будет определен псевдоним @yii/jui на стадии инициализации, что эквивалентно:
Yii::setAlias('@yii/jui', 'VendorPath/yiisoft/yii2-jui');
© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/guide-concept-aliases.html