Оглавление

Введение Первое знакомство Структура приложения Обработка запросов Основные понятия Работа с базами данных Получение данных от пользователя Отображение данных Безопасность Кеширование Веб-сервисы REST Тестирование Специальные темы Виджеты Хелперы
Зачем реклама?

Псевдонимы

Псевдонимы используются для обозначения путей к файлам или URL адресов и помогают избежать использования абсолютных путей или URL в коде. Для того, чтобы не перепутать псевдоним с обычным путём к файлу или URL, он должен начинаться с @. В Yii имеется множество заранее определённых псевдонимов. Например, @yii указывает на директорию, в которую был установлен Yii framework, а @web можно использовать для получения базового URL текущего приложения.

Создание псевдонимов #

Для создания псевдонима пути к файлу или URL используется метод Yii::setAlias():

// псевдоним пути к файлу
Yii::setAlias('@foo''/path/to/foo');

// псевдоним URL
Yii::setAlias('@bar''http://www.example.com');

Note: псевдоним пути к файлу или URL не обязательно указывает на существующий файл или ресурс.

Используя уже заданный псевдоним, вы можете получить на основе него новый без вызова Yii::setAlias(). Сделать это можно, добавив в его конец /, за которым следует один или более сегментов пути. Псевдонимы, определённые при помощи Yii::setAlias(), являются корневыми псевдонимами, в то время как полученные из них называются производными псевдонимами. К примеру, @foo является корневым псевдонимом, а @foo/bar/file.php — производным.

Вы можете задать новый псевдоним, используя ранее созданный псевдоним (не важно, корневой он или производный):

Yii::setAlias('@foobar''@foo/bar');

Корневые псевдонимы, как правило, создаются на этапе предварительной загрузки (bootstrapping). Например, вы можете вызвать Yii::setAlias() в входном скрипте. Для удобства, в приложении (Application) предусмотрено свойство aliases, которое можно задать через конфигурацию приложения:

return [
    
// ...
    
'aliases' => [
        
'@foo' => '/path/to/foo',
        
'@bar' => 'http://www.example.com',
    ],
];

Преобразование псевдонимов #

Метод Yii::getAlias() преобразует корневой псевдоним в путь к файлу или URL, который этот псевдоним представляет. Этот же метод может работать и с производными псевдонимами:

echo Yii::getAlias('@foo');               // выведет: /path/to/foo
echo Yii::getAlias('@bar');               // выведет: http://www.example.com
echo Yii::getAlias('@foo/bar/file.php');  // выведет: /path/to/foo/bar/file.php

Путь или URL, представленный производным псевдонимом, определяется путём замены в нём части, соответствующей корневому псевдониму, на соответствующий ему путь или URL.

Note: Метод Yii::getAlias() не проверяет фактического существования получаемого пути или URL.

Корневой псевдоним может содержать знаки '/'. При этом метод Yii::getAlias() корректно определит, какая часть псевдонима является корневой и верно сформирует путь или URL:

Yii::setAlias('@foo''/path/to/foo');
Yii::setAlias('@foo/bar''/path2/bar');
Yii::getAlias('@foo/test/file.php');  // выведет: /path/to/foo/test/file.php
Yii::getAlias('@foo/bar/file.php');   // выведет: /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 задаётся в момент подключения файла Yii.php во входном скрипте. Остальные псевдонимы задаются в конструкторе приложения в момент применения конфигурации.

Псевдонимы расширений #

Для каждого расширения, устанавливаемого через Composer, автоматически задаётся псевдоним. Его имя соответствует корневому пространству имён расширения в соответствии с его composer.json. Псевдоним представляет путь к корневой директории пакета. Например, если вы установите расширение yiisoft/yii2-jui, то вам автоматически станет доступен псевдоним @yii/jui. Он создаётся на этапе первоначальной загрузки (bootstrapping) примерно так:

Yii::setAlias('@yii/jui''VendorPath/yiisoft/yii2-jui');

Зачем реклама?