Псевдонимы (алиасы)
Вы можете использовать псевдонимы для представления путей к файлам или URL-адресов, чтобы вам не приходилось жестко указывать абсолютные пути или URL-адреса в вашем проекте. Каждый псевдоним должен начинаться с символа @, чтобы отличаться от обычных файловых путей или URL. Алиас, определенный без предшествующего @ будет префиксироваться с помощью символа @.
По умолчанию Yii-приложение имеет несколько алисов, предопределенных в config/params.php. Например, алиас @public представляет корневой путь для web; @baseUrl представляет базовый URL для запущенного в текущий момент Web-приложения.
Определение псевдонимов
Вы можете определить какой-либо псевдоним через config/params.php приложения:
return [
// ...
'yiisoft/aliases' => [
'aliases' => [
// ...
// an alias of a file path
'@foo' => '/path/to/foo',
// an alias of a URL
'@bar' => 'http://www.example.com',
// an alias of a concrete file that contains a \foo\Bar class
'@foo/Bar.php' => '/definitely/not/foo/Bar.php',
],
],
];Примечание: Псевдонимизированный файловый путь или URL не обязательно может ссылаться на существующий файл или ресурс.
Учитывая определенный псевдоним, вы можете создать новый, добавив слэш /, за которым следует один или несколько сегментов пути. Например, @foo - это корневой псевдоним, а @foo/bar/file.php - производный псевдоним.
Вы можете определить псевдоним, используя другой псевдоним (корневой или производный):
'@foobar' => '@foo/bar',Параметр yiisoft/aliases инициализирует сервис Aliases из пакетаyiisoft/aliases. Используя этот сервис, вы можете установить дополнительные псевдонимы времени выполнения:
use \Yiisoft\Aliases\Aliases;
public function actionIndex(Aliases $aliases)
{
$aliases->set('@uploads', '@root/uploads');
}Использование псевдонимов в конфигурации
Предпочтительно разрешать псевдонимы на уровне конфигурации, чтобы сервисы получали URL-адреса и пути как готовые к использованию строки:
<?php
declare(strict_types=1);
use Yiisoft\Aliases\Aliases;
use Yiisoft\Cache\File\FileCache;
/* @var $params array */
return [
FileCache::class => static fn (Aliases $aliases) => new FileCache(
$aliases->get($params['yiisoft/cache-file']['fileCache']['path'])
),
];Разрешение псевдонимов
Вы можете использовать сервис Aliases, чтобы преобразовать псевдоним или производный псевдоним в путь к файлу или URL, который он представляет:
use \Yiisoft\Aliases\Aliases;
public function actionIndex(Aliases $aliases)
{
$foo = $aliases->get('@foo'); // /path/to/foo
$bar = $aliases->get('@bar'); // http://www.example.com
$file = $aliases->get('@foo/bar/file.php'); // /path/to/foo/bar/file.php
}Путь/URL, представленный производным псевдонимом, определяется путем замены части корневого псевдонима на соответствующий путь/URL в производном псевдониме.
Примечание: Метод
get()не проверяет, относится ли результирующий путь/URL-адрес к существующему файлу или ресурсу.
Псевдоним root также может содержать символы косой черты /. Метод get() достаточно интеллектуален, чтобы определить, какая часть псевдонима является корневым псевдонимом, и, таким образом, правильно определить путь к соответствующему файлу или URL-адрес:
use \Yiisoft\Aliases\Aliases;
public function actionIndex(Aliases $aliases)
{
$aliases->set('@foo', '/path/to/foo');
$aliases->set('@foo/bar', '/path2/bar');
$aliases->get('@foo/test/file.php'); // /path/to/foo/test/file.php
$aliases->get('@foo/bar/file.php'); // /path2/bar/file.php
}Если бы @foo/bar не был бы определен как корневой псевдоним, то последний оператор отобразил бы /path/to/foo/bar/file.php.
Предопределенные псевдонимы
Yii приложение предопределяет набор псевдонимов, чтобы ссылаться на часто используемые файловые пути и URL-адреса:
@root- базовая директория для приложения запущенного в текущий момент.@assets- публичная директория приложения, где оно публикует ресурсы (assets).@assetsUrl- URL базовой директории с опубликованными ресурсами.@baseUrl- базовый URL запущенного в текущий момент Web приложения. По умолчанию -/.@npm- директория пакетов Node JS.@bower- директория пакетов Bower.@vendor- директорияvendorComposer'а .@public- публично доступная директория приложения, которая содержитindex.php.@runtime- путь времени выполнения текущего запущенного приложения. По умолчанию -@root/runtime.@layout- директория с макетами.@resources- директория с представлениями, исходниками ресурсов (asset) и другими ресурсами.@views- базовая директория шаблонов представлений приложения.