Spec-Zone.ru › Yii 2.0

Псевдонимы

  1. Определение псевдонимов
  2. Разрешение псевдонимов
  3. Использование псевдонимов
  4. Предопределённые псевдонимы
  5. Псевдонимы расширений

Псевдонимы используются для представления путей к файлам или 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API