Yii2 алиасы. Как создать, хранить и использовать.
  • 1510

Yii2 алиасы. Как создать, хранить и использовать.

Автор: admin | 27 июня (Ср.) 2018г. в 23ч.12м.

Алиас- это строка, которая служит как некий псевдоним для путей в файловой системе или веб. Начинается
алиас со знака '@', далее идет название алиаса.

Методы для создания и вывода алиасов.

\Yii::setAlias('@alias', '/path/to/alias');

Или для веб:

\Yii::setAlias('@webroot', 'https://coderius.biz.ua/');

Преобразуем алиас в путь:

\Yii::getAlias('@alias');//'/path/to/alias'
\Yii::getAlias('@webroot');//'https://coderius.biz.ua/'

Построение пути на основе алиаса:

\Yii::getAlias('@alias/dir/file');//'/path/to/aliasdir/file'
\Yii::getAlias('@webroot'.$id);//'https://coderius.biz.ua/34'

Где хранить алиасы.

Алиасы можно хранить в конфигурационном файле в виде массива 'алиас => значение'.
Так как алиасов может быть много, то алиасы выносятся в отдельный файл и подключаются в конфиге:
return [
    'aliases' => require(__DIR__ . '/aliases.php'),
    'name' => 'App',
    
    ...​

В файле aliases.php:

return [
    '@bower' => '@vendor/bower-asset',
    '@npm'   => '@vendor/npm-asset',

...

Далее нужно вызвать алиас в нужном месте:

\Yii::getAlias('@bower');

Во многих методах yii2 алиасы приобразуются без необходимости использовать \Yii::getAlias().
Напримет класс yii\helpers\Html содержит методы для вывода ссылок или картинок:

Html::a('text', '@urlalias', $options = []);
img('@imgweb', $options = []);

Установка алиасов в bootstrap.

Кроме конфигурационных файлов для установки алиасов можно применить файл пердзагрузки bootstrap.
Файл предзагрузки позволяер создавать алиасы в самом начале построения приложения. Таким образом
псевдонимы путей определенные в bootstrap файле могут быть использованы в конфигурационном файле.
Вот так установлены алиасы в приложении advanced после установки в common:
<?php
Yii::setAlias('@common', dirname(__DIR__));
Yii::setAlias('@frontend', dirname(dirname(__DIR__)) . '/frontend');
Yii::setAlias('@backend', dirname(dirname(__DIR__)) . '/backend');
Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');​

Поэтому сюда нужно добавлять алиасы, которые должны работать уже на начальном этапе 'жизни'
приложения. Вот так добавляем путь к папке модулей, которую создадим для примера в корне
проекта рядом с frontend, backend, common.

Yii::setAlias('@modules', dirname(dirname(__DIR__)) . '/modules');

Список объявленных в yii2 псевдонимов путей.

Basic приложение Yii2.

  • @app: Корневой каталог приложения
  • @vendor: Каталог vendor в корневом каталоге установки приложения
  • @runtime: Папка для хранения / хранения файлов приложений
  • @web: URL-адрес вашего базового URL-адреса
  • @webroot: Ваш корневой сайт приложения
  • @tests: Каталог ваших консольных тестов

Advanced приложение Yii2.

  • @app: Ваш корневой каталог приложения (либо внешний интерфейс, либо бэкэнд или консоль в зависимости от того, где вы его используете)
  • @vendor: Каталог vendor в корневом каталоге установки приложения
  • @runtime: Папка для хранения / хранения файлов приложений
  • @web: URL-адрес вашего базового URL-адреса
  • @webroot: Ваш корневой сайт приложения
  • @tests: Каталог ваших консольных тестов
  • @common: Псевдоним для вашей общей корневой папки в корневом каталоге установки приложения
  • @frontend: Псевдоним для корневой папки вашего корневого каталога в корневом каталоге установки приложения
  • @backend: Псевдоним для вашей основной корневой папки в корневом каталоге установки приложения
  • @console: Псевдоним для вашей корневой папки консоли в корневом каталоге установки приложения

Приветствую!

Меня зовут Сергей. Я - автор этого блога.

Если Вам был полезен материал на моем сайте, поддержите пожалуйста мой проект, чтобы о нем узнали другие люди - кликните plizz :) на иконку в соц. сети, чтобы поделиться материалом с другими.