mirror of
https://github.com/yiisoft/yii2.git
synced 2025-12-01 15:07:49 +08:00
Update Russian translation of structure-applications.md
This commit is contained in:
committed by
Alexander Makarov
parent
c55186ccee
commit
b4856cedde
@@ -2,11 +2,10 @@
|
||||
==========
|
||||
|
||||
Приложения это объекты, которые управляют всей структурой и жизненным циклом прикладной системы Yii.
|
||||
Каждая Yii прикладная система включает в себя один объект приложения, который создается в [входном скрипте](structure-entry-scripts.md)
|
||||
и глобально доступен через `\Yii::$app`.
|
||||
Каждая Yii прикладная система включает в себя один объект приложения, который создается во [входном скрипте](structure-entry-scripts.md) и глобально доступен через `\Yii::$app`.
|
||||
|
||||
> Информация: В зависимости от контекста, когда мы говорим "приложение", это может означать как объект приложения так и
|
||||
прикладную систему приложения в целом.
|
||||
приложение как прикладную систему в целом.
|
||||
|
||||
Существует два вида приложений: [[yii\web\Application|веб приложения]] и [[yii\console\Application|консольные приложения]].
|
||||
Как можно догадаться по названию, первый тип в основном занимается обработкой веб запросов, в то время как последний - консольных команд.
|
||||
@@ -14,7 +13,7 @@
|
||||
|
||||
## Конфигурации приложения <a name="application-configurations"></a>
|
||||
|
||||
Когда [входной скрипт](structure-entry-scripts.md создает приложение, он загрузит [конфигурацию](concept-configurations.md)
|
||||
Когда [входной скрипт](structure-entry-scripts.md) создает приложение, он загрузит [конфигурацию](concept-configurations.md)
|
||||
и применит ее к приложению, например:
|
||||
|
||||
```php
|
||||
@@ -29,8 +28,7 @@ $config = require(__DIR__ . '/../config/web.php');
|
||||
```
|
||||
|
||||
Также как и обычные [конфигурации](concept-configurations.md), конфигурации приложения указывают как следует инициализировать
|
||||
свойства объектов приложения. Из-за того, что конфигурации приложений часто являются сложными, они разбиваются на несколько
|
||||
[конфигурационных файлов](concept-configurations.md#configuration-files), например, `web.php` файл в приведенном выше примере.
|
||||
свойства объектов приложения. Из-за того, что конфигурация приложения часто является очень сложной, она разбивается на несколько [конфигурационных файлов](concept-configurations.md#configuration-files), например, `web.php` - файл в приведенном выше примере.
|
||||
|
||||
|
||||
## Свойства приложений <a name="application-properties"></a>
|
||||
@@ -55,29 +53,25 @@ $config = require(__DIR__ . '/../config/web.php');
|
||||
|
||||
#### [[yii\base\Application::basePath|basePath]] <a name="basePath"></a>
|
||||
|
||||
Свойство [[yii\base\Application::basePath|basePath]] указывает на корневую папку приложения. Это папка, которая содержит
|
||||
весь код прикладной системы приложения. В данной папке обычно могут находится подпапки `models`, `views`, `controllers`, которые
|
||||
содержат код, отвечающий шаблону проектирования MVC.
|
||||
Свойство [[yii\base\Application::basePath|basePath]] указывает на корневую директорию приложения. Эта директория содержит
|
||||
весь защищенный исходный код приложения. В данной директории обычно могут находится поддиректории `models`, `views`, `controllers`, содержащие код, соответствующий шаблону проектирования MVC.
|
||||
|
||||
Вы можете настроить свойство [[yii\base\Application::basePath|basePath]] указав напрямую путь к каталогу через
|
||||
[псевдонимы пути](concept-aliases.md). В обоих случаях, указанная папка должна существовать, иначе будет брошено исключение.
|
||||
Путь будет нормализован с помощью вызова функции `realpath()`.
|
||||
Вы можете задать свойство [[yii\base\Application::basePath|basePath]] используя путь к директории или используя
|
||||
[псевдоним пути](concept-aliases.md). В обоих случаях, указанная директория должна существовать, иначе будет выброшено исключение. Путь будет нормализован функцией `realpath()`.
|
||||
|
||||
Свойство [[yii\base\Application::basePath|basePath]] часто используется для получения других важных путей, например, путь к
|
||||
runtime папке, которая используется в процессе работы приложения. Именно по этой причине, псевдоним пути `@app` является
|
||||
предопределенным и указывает на данную папку. Другие пути могут быть получены с помощью использования псевдонима пути, например,
|
||||
`@app/runtime`.
|
||||
Свойство [[yii\base\Application::basePath|basePath]] часто используется для указания других важных путей (например, путь к
|
||||
директории runtime, используемой приложением). По этой причине, псевдоним пути `@app` предустановлен и содержит данный путь. Производные пути могут быть получены с использованием этого псевдонима пути (например, `@app/runtime` указывает на времененную исполняемую(runtime) дирректорию).
|
||||
|
||||
|
||||
### Важные свойства <a name="important-properties"></a>
|
||||
|
||||
Свойства, указанные в этом подразделе, часто должны быть настроены т. к. они могут отличаться от приложения к приложению.
|
||||
Свойства, указанные в этом подразделе, часто нуждаются в преднастройке т.к. они разнятся от приложения к приложению.
|
||||
|
||||
|
||||
#### [[yii\base\Application::aliases|aliases]] <a name="aliases"></a>
|
||||
|
||||
Это свойство позволяет настроить вам множество [псевдонимов](concept-aliases.md) в рамках массива.
|
||||
Ключами массива являются имена псевдонимов, а ключами - соответствующие значение пути. Например,
|
||||
Ключами массива являются имена псевдонимов, а значениями массива - соответствующие значения пути. Например,
|
||||
|
||||
```php
|
||||
[
|
||||
@@ -88,7 +82,7 @@ runtime папке, которая используется в процессе
|
||||
]
|
||||
```
|
||||
|
||||
Это свойство доступно таким образом, чтобы вы могли указывать псевдонимы в рамках конфигураций приложения,
|
||||
Это свойство доступно таким образом, чтобы вы могли указывать псевдонимы в рамках конфигурации приложения,
|
||||
а не вызовов метода [[Yii::setAlias()]].
|
||||
|
||||
|
||||
@@ -105,7 +99,8 @@ ID в качестве элемента данного свойства.
|
||||
- ID, указанный в [компонентах](#components);
|
||||
- ID модуля, указанный в [модулях](#modules);
|
||||
- название класса;
|
||||
- массив конфигурации.
|
||||
- массив конфигурации;
|
||||
- анонимная функция, которая создает и возвращает компонент.
|
||||
|
||||
Например,
|
||||
|
||||
@@ -116,19 +111,31 @@ ID в качестве элемента данного свойства.
|
||||
'demo',
|
||||
|
||||
// название класса
|
||||
'app\components\TrafficMonitor',
|
||||
'app\components\Profiler',
|
||||
|
||||
// массив конфигурации
|
||||
[
|
||||
'class' => 'app\components\Profiler',
|
||||
'level' => 3,
|
||||
]
|
||||
],
|
||||
|
||||
// анонимная функция
|
||||
function () {
|
||||
return new app\components\Profiler();
|
||||
}
|
||||
],
|
||||
]
|
||||
```
|
||||
> Info: Если идентификатор(ID) модуля такой же, как идентификатор компонента приложения, то в процессе [начальной загрузки](runtime-bootstrapping.md) будет использован компонент приложения. Если Вы вместо этого хотите использовать модуль, то можете указать его при помощью анонимной функции похожей на эту:
|
||||
>```php
|
||||
[
|
||||
function () {
|
||||
return Yii::$app->getModule('user');
|
||||
},
|
||||
]
|
||||
```
|
||||
|
||||
В процессе начальной загрузки, каждый компонент будет создан. Если класс компонента имеет интерфейс [[yii\base\BootstrapInterface]], то
|
||||
также будет вызван метод [[yii\base\BootstrapInterface::bootstrap()|bootstrap()]].
|
||||
В процессе [начальной загрузки](runtime-bootstrapping.md), каждый компонент будет создан. Если класс компонента имеет интерфейс [[yii\base\BootstrapInterface]], то также будет вызван метод [[yii\base\BootstrapInterface::bootstrap()|bootstrap()]].
|
||||
|
||||
Еще одним практическим примером является конфигурация [базового шаблона приложения](start-installation.md), в котором
|
||||
модули `debug` и `gii` указаны как `bootstrap` компоненты, когда приложение находится в отладочном режиме.
|
||||
@@ -144,19 +151,17 @@ if (YII_ENV_DEV) {
|
||||
}
|
||||
```
|
||||
|
||||
> Примечание: Указывание слишком большого количества компонентов в `bootstrap` приведет к снижению производительности приложения,
|
||||
> Примечание: Указывание слишком большого количества компонентов в [`bootstrap`](runtime-bootstrapping.md) приведет к снижению производительности приложения,
|
||||
потому что для каждого запроса одно и то же количество компонентов должно быть загружено. Таким образом вы должны использовать
|
||||
начальную загрузку разумно.
|
||||
|
||||
|
||||
#### [[yii\web\Application::catchAll|catchAll]] <a name="catchAll"></a>
|
||||
|
||||
Данное свойство поддерживается только [[yii\web\Application|веб приложениями]].Оно указывает [действие контроллера](structure-controllers.md),
|
||||
которое должно обрабатывать все входящие запросы от пользователя. В основном это используется, когда приложения находится в
|
||||
режиме обслуживания и должно обрабатывать все запросы через одно действие.
|
||||
Данное свойство поддерживается только [[yii\web\Application|веб приложениями]].Оно указывает [действие контроллера](structure-controllers.md), которое должно обрабатывать все входящие запросы от пользователя. В основном это используется, когда приложения находится в режиме обслуживания и должно обрабатывать все запросы через одно действие.
|
||||
|
||||
Конфигурация это массив, первый элемент которого, указывает маршрут действия. Остальные элементы в формате ключ-значение
|
||||
указывают дополнительные параметры, которые должны быть переданы действию. Например,
|
||||
Конфигурация это массив, первый элемент которого, определяет маршрут действия. Остальные элементы в формате пара ключ-значение задают дополнительные параметры, которые должны быть переданы действию (методу контроллера actionXXX).
|
||||
Например,
|
||||
|
||||
```php
|
||||
[
|
||||
@@ -171,8 +176,8 @@ if (YII_ENV_DEV) {
|
||||
|
||||
#### [[yii\base\Application::components|components]] <a name="components"></a>
|
||||
|
||||
Данное свойство является наиболее важным. Оно позволяет вам указать список компонентов, которые называются [компоненты приложения](#structure-application-components.md),
|
||||
которые вы можете использовать в других местах. Например,
|
||||
Данное свойство является наиболее важным. Оно позволяет вам зарегистрировать список именованных компонентов, называемых [компоненты приложения](#structure-application-components.md), которые Вы можете использовать в других местах.
|
||||
Например,
|
||||
|
||||
```php
|
||||
[
|
||||
@@ -188,22 +193,16 @@ if (YII_ENV_DEV) {
|
||||
]
|
||||
```
|
||||
|
||||
Каждый компонент приложения указан массивом в формате ключ-значение. Ключ представляет собой ID компонента приложения, в то время
|
||||
как значение представляет собой название класса или [конфигурацию](concept-configurations.md).
|
||||
Каждый компонент приложения указан массивом в формате ключ-значение. Ключ представляет собой ID компонента приложения, в то время как значение представляет собой название класса или [конфигурацию](concept-configurations.md).
|
||||
|
||||
Вы можете зарегистрировать любой компонент в приложении, позже этот компонент будет глобально доступен
|
||||
через выражение `\Yii::$app->ComponentID`.
|
||||
Вы можете зарегистрировать любой компонент в приложении, позже этот компонент будет глобально доступен через выражение `\Yii::$app->ComponentID`.
|
||||
|
||||
Более детальная информация приведена в разделе [Компоненты приложения](structure-application-components.md).
|
||||
Более подробная информация приведена в разделе [Компоненты приложения](structure-application-components.md).
|
||||
|
||||
|
||||
#### [[yii\base\Application::controllerMap|controllerMap]] <a name="controllerMap"></a>
|
||||
|
||||
Данное свойство позволяет вам устанавливать соответствия между ID контроллера и его классом. По-умолчанию, Yii устанавливает
|
||||
соответствие между ID контроллера и его классом согласно данному [соглашению](#controllerNamespace) (таким образом,
|
||||
ID `post` будет соответствовать `app\controllers\PostController` ). С помощью настройки этого свойства вы можете изменить
|
||||
соглашение для нужных контроллеров. В приведенном ниже примере, `account` будет соответствовать `app\controllers\UserController`,
|
||||
в то время как `article` будет соответствовать `app\controllers\PostController`.
|
||||
Данное свойство позволяет вам задавать соответствия(mapping) между ID контроллера и произвольным классом контроллера. По-умолчанию, Yii задает соответствие между ID контроллера и его классом согласно данному [соглашению](#controllerNamespace) (таким образом, ID `post` будет соответствовать `app\controllers\PostController` ). Задавая эти свойства вы можете переопределить соответствия для необходимых контроллеров. В приведенном ниже примере, `account` будет соответствовать контроллеру `app\controllers\UserController`, в то время как `article` будет соответствовать контроллеру `app\controllers\PostController`.
|
||||
|
||||
```php
|
||||
[
|
||||
@@ -219,8 +218,8 @@ ID `post` будет соответствовать `app\controllers\PostControl
|
||||
]
|
||||
```
|
||||
|
||||
Ключами данного свойства являются ID контроллеров, а значениями являются название
|
||||
класса контроллера или [конфигурация](concept-configurations.md).
|
||||
Ключами данного свойства являются ID контроллеров, а значениями являются соответствующие названия
|
||||
классов(полное название класса с пространством имен) контроллера или [конфигурация](concept-configurations.md).
|
||||
|
||||
|
||||
#### [[yii\base\Application::controllerNamespace|controllerNamespace]] <a name="controllerNamespace"></a>
|
||||
@@ -229,14 +228,12 @@ ID `post` будет соответствовать `app\controllers\PostControl
|
||||
По-умолчанию значение равно `app\controllers`. Если ID контроллера `post`, то согласно соглашению, соответствующий класс
|
||||
контроллера (без пространства имен) будет равен `PostController`, а полное название класса будет равно `app\controllers\PostController`.
|
||||
|
||||
Класс контроллера может также находиться в подпапке папки, которая соответствует этому пространству имен.
|
||||
Например, дан ID контроллера `admin/post`, соответствующие полное имя класса контроллера будет `app\controllers\admin\PostController`.
|
||||
Класс контроллера может также находиться в поддиректории директории, соответствующей этому пространству имен.
|
||||
Например, ID контроллера `admin/post`, будет соответветствовать полное имя класса контроллера `app\controllers\admin\PostController`.
|
||||
|
||||
Очень важно, чтобы полное имя класса контроллера могло быть использовано [автозагрузкой](concept-autoloading.md) и соответствующее
|
||||
пространство имен вашего контроллера соответствовало данному свойству. Иначе, вы получите ошибку "Страница не найдена", когда
|
||||
попытаетесь получить доступ к приложению.
|
||||
Очень важно, чтобы полное имя класса контроллера могло быть использовано [автозагрузкой](concept-autoloading.md) и соответствующее пространство имен вашего контроллера соответствовало данному свойству. Иначе, Вы получите ошибку "Страница не найдена", при доступе к приложению.
|
||||
|
||||
В случае, если вы хотите изменить соглашение как описано выше, вы можете использовать свойство [controllerMap](#controllerMap).
|
||||
В случае, если вы хотите переопределить соответствия как описано выше, вы можете настроить свойство [controllerMap](#controllerMap).
|
||||
|
||||
|
||||
#### [[yii\base\Application::language|language]] <a name="language"></a>
|
||||
|
||||
Reference in New Issue
Block a user