Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion guide/en/concept/aliases.md
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ return [
];
```

> Note: The file path or URL bein1g aliased may *not* necessarily refer to an existing file or resource.
> Note: The file path or URL being aliased may *not* necessarily refer to an existing file or resource.

Given a defined alias, you may derive a new alias by appending a slash `/` followed with one or more path segments.
For example, `@foo` is a root alias, while `@foo/bar/file.php` is a derived alias.
Expand Down
140 changes: 140 additions & 0 deletions guide/ru/concept/aliases.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
# Псевдонимы (алиасы)

Вы можете использовать псевдонимы для представления путей к файлам или URL-адресов, чтобы вам не приходилось жестко
указывать абсолютные пути или URL-адреса в вашем проекте. Каждый псевдоним должен начинаться с символа `@`, чтобы
отличаться от обычных файловых путей или URL. Алиас, определенный без предшествующего `@` будет префиксироваться
с помощью символа `@`.

По умолчанию Yii-приложение имеет несколько алисов, предопределенных в `config/params.php`. Например, алиас `@public`
представляет корневой путь для web; `@baseUrl` представляет базовый URL для запущенного в текущий момент Web-приложения.

## Определение псевдонимов <span id="defining-aliases"></span>

Вы можете определить какой-либо псевдоним через `config/params.php` приложения:

```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` - производный псевдоним.

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

```php
'@foobar' => '@foo/bar',
```

Параметр `yiisoft/aliases` инициализирует сервис `Aliases` из [пакета](https://github.com/yiisoft/aliases)
`yiisoft/aliases`. Используя этот сервис, вы можете установить дополнительные псевдонимы времени выполнения:

```php
use \Yiisoft\Aliases\Aliases;

public function actionIndex(Aliases $aliases)
{
$aliases->set('@uploads', '@root/uploads');
}
```

## Использование псевдонимов в конфигурации

Предпочтительно разрешать псевдонимы на уровне конфигурации, чтобы сервисы получали URL-адреса и пути как готовые к
использованию строки:

```php
<?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'])
),
];
```

## Разрешение псевдонимов <span id="resolving-aliases"></span>

Вы можете использовать сервис `Aliases`, чтобы преобразовать псевдоним или производный псевдоним в путь к файлу или URL,
который он представляет:

```php
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-адрес:

```php
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`.


## Предопределенные псевдонимы <span id="predefined-aliases"></span>

[Yii приложение](https://github.com/yiisoft/app) предопределяет набор псевдонимов, чтобы ссылаться на часто используемые
файловые пути и URL-адреса:

- `@root` - базовая директория для приложения запущенного в текущий момент.
- `@assets` - публичная директория приложения, где оно публикует ресурсы (assets).
- `@assetsUrl` - URL базовой директории с опубликованными ресурсами.
- `@baseUrl` - базовый URL запущенного в текущий момент Web приложения. По умолчанию - `/`.
- `@npm` - директория пакетов Node JS.
- `@bower` - директория пакетов Bower.
- `@vendor` - директория `vendor` Composer'а .
- `@public` - публично доступная директория приложения, которая содержит `index.php`.
- `@runtime` - путь времени выполнения текущего запущенного приложения. По умолчанию - `@root/runtime`.
- `@layout` - директория с макетами.
- `@resources` - директория с представлениями, исходниками ресурсов (asset) и другими ресурсами.
- `@views` - базовая директория шаблонов представлений приложения.