Псевдоніми використовуються для представлення шляхів до файлів або URL адрес
і допомагають уникнути використання абсолютних шляхів або URL у коді.
Для того, щоб не переплутати псевдонім із звичайним шляхом до файлу або URL,
він повинен починатися із символу @. Якщо псевдонім не починається із
символу @ - його буде додано автоматично.
В Yii є багато заздалегідь визначених псевдонімів. Наприклад,
@yii вказує на директорію, в яку був встановлений Yii framework,
а @web можна використовувати для отримання базового URL поточного додатку.
Для створення псевдоніма шляху до файлу або URL використовується метод Yii::setAlias():
// псевдонім шляху до файлу
Yii::setAlias('@foo', '/path/to/foo');
// псевдонім URL
Yii::setAlias('@bar', 'https://www.example.com');
Примітка: псевдонім шляху до файлу або 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' => 'https://www.example.com',
],
];
Виклик Yii::getAlias() перетворює кореневий псевдонім в шлях до файлу або URL, який цей псевдонім представляє. Цей же метод може працювати і з похідними псевдонімами:
echo Yii::getAlias('@foo'); // виведе: /path/to/foo
echo Yii::getAlias('@bar'); // виведе: https://www.example.com
echo Yii::getAlias('@foo/bar/file.php'); // виведе: /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'); // виведе: /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: директорія, в якій знаходиться файл BaseYii.php (директорія фреймворку).@app: базовий шлях поточного додатку.@runtime: директорія runtime поточного додатку. За замовчуванням @app/runtime.@webroot, коренева веб-директорія поточного веб-додатку. Визначається на основі директорії розташування вхідного скрипта.@web, базовий URL поточного додатку. Має таке ж значення, як і yii\web\Request::$baseUrl.@vendor, директорія vendor Composer. За замовчуванням @app/vendor.@bower, директорія, що містить пакунки Bower. За замовчуванням @vendor/bower.@npm, директорія, що містить пакунки NPM. За замовчуванням @vendor/npm.Псевдонім @yii задається в момент підключення файлу Yii.php у вхідному скрипті.
Решта псевдонімів задаються в конструкторі додатка в момент застосування конфигурації.
Для кожного розширення, що встановлюється через Composer, автоматично задається псевдонім.
Його імʼя відповідає кореневому простору імен розширення відповідно до його composer.json, і кожен псевдонім представляє
шлях до кореневої директорії пакунка. Наприклад, якщо ви встановите розширення yiisoft/yii2-jui,
то вам автоматично стане доступним псевдонім @yii/jui, який будет створено на етапі
первинного завантаження (bootstrapping) наступним чином:
Yii::setAlias('@yii/jui', 'VendorPath/yiisoft/yii2-jui');
Found a typo or you think this page needs improvement?
Edit it on github !
Signup or Login in order to comment.