Commit 67ad693c by Alexander Makarov

Additional fixed for Russian translation of structure-applications.md

parent b4856ced
...@@ -2,7 +2,8 @@ ...@@ -2,7 +2,8 @@
========== ==========
Приложения это объекты, которые управляют всей структурой и жизненным циклом прикладной системы Yii. Приложения это объекты, которые управляют всей структурой и жизненным циклом прикладной системы Yii.
Каждая Yii прикладная система включает в себя один объект приложения, который создается во [входном скрипте](structure-entry-scripts.md) и глобально доступен через `\Yii::$app`. Каждая прикладная система Yii включает в себя один объект приложения, который создается во [входном скрипте](structure-entry-scripts.md)
и глобально доступен через `\Yii::$app`.
> Информация: В зависимости от контекста, когда мы говорим "приложение", это может означать как объект приложения так и > Информация: В зависимости от контекста, когда мы говорим "приложение", это может означать как объект приложения так и
приложение как прикладную систему в целом. приложение как прикладную систему в целом.
...@@ -13,8 +14,8 @@ ...@@ -13,8 +14,8 @@
## Конфигурации приложения <a name="application-configurations"></a> ## Конфигурации приложения <a name="application-configurations"></a>
Когда [входной скрипт](structure-entry-scripts.md) создает приложение, он загрузит [конфигурацию](concept-configurations.md) Когда [входной скрипт](structure-entry-scripts.md) создаёт приложение, он загрузит [конфигурацию](concept-configurations.md)
и применит ее к приложению, например: и применит её к приложению, например:
```php ```php
require(__DIR__ . '/../vendor/autoload.php'); require(__DIR__ . '/../vendor/autoload.php');
...@@ -28,7 +29,8 @@ $config = require(__DIR__ . '/../config/web.php'); ...@@ -28,7 +29,8 @@ $config = require(__DIR__ . '/../config/web.php');
``` ```
Также как и обычные [конфигурации](concept-configurations.md), конфигурации приложения указывают как следует инициализировать Также как и обычные [конфигурации](concept-configurations.md), конфигурации приложения указывают как следует инициализировать
свойства объектов приложения. Из-за того, что конфигурация приложения часто является очень сложной, она разбивается на несколько [конфигурационных файлов](concept-configurations.md#configuration-files), например, `web.php` - файл в приведенном выше примере. свойства объектов приложения. Из-за того, что конфигурация приложения часто является очень сложной, она разбивается на несколько
[конфигурационных файлов](concept-configurations.md#configuration-files), например, `web.php` - файл в приведённом выше примере.
## Свойства приложений <a name="application-properties"></a> ## Свойства приложений <a name="application-properties"></a>
...@@ -54,13 +56,17 @@ $config = require(__DIR__ . '/../config/web.php'); ...@@ -54,13 +56,17 @@ $config = require(__DIR__ . '/../config/web.php');
#### [[yii\base\Application::basePath|basePath]] <a name="basePath"></a> #### [[yii\base\Application::basePath|basePath]] <a name="basePath"></a>
Свойство [[yii\base\Application::basePath|basePath]] указывает на корневую директорию приложения. Эта директория содержит Свойство [[yii\base\Application::basePath|basePath]] указывает на корневую директорию приложения. Эта директория содержит
весь защищенный исходный код приложения. В данной директории обычно могут находится поддиректории `models`, `views`, `controllers`, содержащие код, соответствующий шаблону проектирования MVC. весь защищенный исходный код приложения. В данной директории обычно могут находится поддиректории `models`, `views`,
`controllers`, содержащие код, соответствующий шаблону проектирования MVC.
Вы можете задать свойство [[yii\base\Application::basePath|basePath]] используя путь к директории или используя Вы можете задать свойство [[yii\base\Application::basePath|basePath]] используя путь к директории или используя
[псевдоним пути](concept-aliases.md). В обоих случаях, указанная директория должна существовать, иначе будет выброшено исключение. Путь будет нормализован функцией `realpath()`. [псевдоним пути](concept-aliases.md). В обоих случаях, указанная директория должна существовать, иначе будет выброшено
исключение. Путь будет нормализован функцией `realpath()`.
Свойство [[yii\base\Application::basePath|basePath]] часто используется для указания других важных путей (например, путь к Свойство [[yii\base\Application::basePath|basePath]] часто используется для указания других важных путей (например, путь к
директории runtime, используемой приложением). По этой причине, псевдоним пути `@app` предустановлен и содержит данный путь. Производные пути могут быть получены с использованием этого псевдонима пути (например, `@app/runtime` указывает на времененную исполняемую(runtime) дирректорию). директории runtime, используемой приложением). По этой причине, псевдоним пути `@app` предустановлен и содержит данный путь.
Производные пути могут быть получены с использованием этого псевдонима пути (например, `@app/runtime` указывает на
времененную дирректорию runtime).
### Важные свойства <a name="important-properties"></a> ### Важные свойства <a name="important-properties"></a>
...@@ -100,7 +106,7 @@ ID в качестве элемента данного свойства. ...@@ -100,7 +106,7 @@ ID в качестве элемента данного свойства.
- ID модуля, указанный в [модулях](#modules); - ID модуля, указанный в [модулях](#modules);
- название класса; - название класса;
- массив конфигурации; - массив конфигурации;
- анонимная функция, которая создает и возвращает компонент. - анонимная функция, которая создаёт и возвращает компонент.
Например, Например,
...@@ -126,7 +132,9 @@ ID в качестве элемента данного свойства. ...@@ -126,7 +132,9 @@ ID в качестве элемента данного свойства.
], ],
] ]
``` ```
> Info: Если идентификатор(ID) модуля такой же, как идентификатор компонента приложения, то в процессе [начальной загрузки](runtime-bootstrapping.md) будет использован компонент приложения. Если Вы вместо этого хотите использовать модуль, то можете указать его при помощью анонимной функции похожей на эту: > Info: Если ID модуля такой же, как идентификатор компонента приложения, то в процессе [начальной загрузки](runtime-bootstrapping.md)
> будет использован компонент приложения. Если Вы вместо этого хотите использовать модуль, то можете указать его при
> помощи анонимной функции похожей на эту:
>```php >```php
[ [
function () { function () {
...@@ -135,7 +143,8 @@ ID в качестве элемента данного свойства. ...@@ -135,7 +143,8 @@ ID в качестве элемента данного свойства.
] ]
``` ```
В процессе [начальной загрузки](runtime-bootstrapping.md), каждый компонент будет создан. Если класс компонента имеет интерфейс [[yii\base\BootstrapInterface]], то также будет вызван метод [[yii\base\BootstrapInterface::bootstrap()|bootstrap()]]. В процессе [начальной загрузки](runtime-bootstrapping.md), каждый компонент будет создан. Если класс компонента имеет
интерфейс [[yii\base\BootstrapInterface]], то также будет вызван метод [[yii\base\BootstrapInterface::bootstrap()|bootstrap()]].
Еще одним практическим примером является конфигурация [базового шаблона приложения](start-installation.md), в котором Еще одним практическим примером является конфигурация [базового шаблона приложения](start-installation.md), в котором
модули `debug` и `gii` указаны как `bootstrap` компоненты, когда приложение находится в отладочном режиме. модули `debug` и `gii` указаны как `bootstrap` компоненты, когда приложение находится в отладочном режиме.
...@@ -151,16 +160,20 @@ if (YII_ENV_DEV) { ...@@ -151,16 +160,20 @@ if (YII_ENV_DEV) {
} }
``` ```
> Примечание: Указывание слишком большого количества компонентов в [`bootstrap`](runtime-bootstrapping.md) приведет к снижению производительности приложения, > Примечание: Указывание слишком большого количества компонентов в [`bootstrap`](runtime-bootstrapping.md) приведет
потому что для каждого запроса одно и то же количество компонентов должно быть загружено. Таким образом вы должны использовать к снижению производительности приложения, потому что для каждого запроса одно и то же количество компонентов должно
начальную загрузку разумно. быть загружено. Таким образом вы должны использовать начальную загрузку разумно.
#### [[yii\web\Application::catchAll|catchAll]] <a name="catchAll"></a> #### [[yii\web\Application::catchAll|catchAll]] <a name="catchAll"></a>
Данное свойство поддерживается только [[yii\web\Application|веб приложениями]].Оно указывает [действие контроллера](structure-controllers.md), которое должно обрабатывать все входящие запросы от пользователя. В основном это используется, когда приложения находится в режиме обслуживания и должно обрабатывать все запросы через одно действие. Данное свойство поддерживается только [[yii\web\Application|веб приложениями]]. Оно указывает
[действие контроллера](structure-controllers.md), которое должно обрабатывать все входящие запросы от пользователя.
В основном это используется, когда приложения находится в режиме обслуживания и должно обрабатывать все запросы через
одно действие.
Конфигурация это массив, первый элемент которого, определяет маршрут действия. Остальные элементы в формате пара ключ-значение задают дополнительные параметры, которые должны быть переданы действию (методу контроллера actionXXX). Конфигурация это массив, первый элемент которого, определяет маршрут действия. Остальные элементы в формате пара
ключ-значение задают дополнительные параметры, которые должны быть переданы действию (методу контроллера actionXXX).
Например, Например,
```php ```php
...@@ -176,7 +189,8 @@ if (YII_ENV_DEV) { ...@@ -176,7 +189,8 @@ if (YII_ENV_DEV) {
#### [[yii\base\Application::components|components]] <a name="components"></a> #### [[yii\base\Application::components|components]] <a name="components"></a>
Данное свойство является наиболее важным. Оно позволяет вам зарегистрировать список именованных компонентов, называемых [компоненты приложения](#structure-application-components.md), которые Вы можете использовать в других местах. Данное свойство является наиболее важным. Оно позволяет вам зарегистрировать список именованных компонентов, называемых
[компоненты приложения](#structure-application-components.md), которые Вы можете использовать в других местах.
Например, Например,
```php ```php
...@@ -193,16 +207,23 @@ if (YII_ENV_DEV) { ...@@ -193,16 +207,23 @@ 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> #### [[yii\base\Application::controllerMap|controllerMap]] <a name="controllerMap"></a>
Данное свойство позволяет вам задавать соответствия(mapping) между 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 ```php
[ [
...@@ -231,7 +252,9 @@ if (YII_ENV_DEV) { ...@@ -231,7 +252,9 @@ if (YII_ENV_DEV) {
Класс контроллера может также находиться в поддиректории директории, соответствующей этому пространству имен. Класс контроллера может также находиться в поддиректории директории, соответствующей этому пространству имен.
Например, ID контроллера `admin/post`, будет соответветствовать полное имя класса контроллера `app\controllers\admin\PostController`. Например, ID контроллера `admin/post`, будет соответветствовать полное имя класса контроллера `app\controllers\admin\PostController`.
Очень важно, чтобы полное имя класса контроллера могло быть использовано [автозагрузкой](concept-autoloading.md) и соответствующее пространство имен вашего контроллера соответствовало данному свойству. Иначе, Вы получите ошибку "Страница не найдена", при доступе к приложению. Очень важно, чтобы полное имя класса контроллера могло быть использовано [автозагрузкой](concept-autoloading.md) и
соответствующее пространство имен вашего контроллера соответствовало данному свойству. Иначе, Вы получите ошибку
"Страница не найдена", при доступе к приложению.
В случае, если вы хотите переопределить соответствия как описано выше, вы можете настроить свойство [controllerMap](#controllerMap). В случае, если вы хотите переопределить соответствия как описано выше, вы можете настроить свойство [controllerMap](#controllerMap).
...@@ -239,8 +262,8 @@ if (YII_ENV_DEV) { ...@@ -239,8 +262,8 @@ if (YII_ENV_DEV) {
#### [[yii\base\Application::language|language]] <a name="language"></a> #### [[yii\base\Application::language|language]] <a name="language"></a>
Данное свойство указывает язык приложения, на котором содержимое страницы должно быть отображено конечному пользователю. Данное свойство указывает язык приложения, на котором содержимое страницы должно быть отображено конечному пользователю.
По-умолчанию значение данного свойства равно `en`, что означает "Английский". Если ваше приложение должно поддерживать несколько По-умолчанию значение данного свойства равно `en`, что означает "Английский". Если ваше приложение должно поддерживать
языков, вы должны настроить данное свойство. несколько языков, вы должны настроить данное свойство.
Значение данного свойства определяется различными аспектами [интернационализации](tutorial-i18n.md), в том числе Значение данного свойства определяется различными аспектами [интернационализации](tutorial-i18n.md), в том числе
переводом сообщений, форматированием дат, форматированием чисел, и т. д. Например, виджет [[yii\jui\DatePicker]] переводом сообщений, форматированием дат, форматированием чисел, и т. д. Например, виджет [[yii\jui\DatePicker]]
...@@ -569,7 +592,7 @@ $width = \Yii::$app->params['thumbnail.size'][0]; ...@@ -569,7 +592,7 @@ $width = \Yii::$app->params['thumbnail.size'][0];
будет развиваться согласно следующему жизненному циклу: будет развиваться согласно следующему жизненному циклу:
1. Входной скрипт загружает конфигурацию приложения в качества массива; 1. Входной скрипт загружает конфигурацию приложения в качества массива;
2. Входной скрипт создает новый объект приложения: 2. Входной скрипт создаёт новый объект приложения:
* Вызывается метод [[yii\base\Application::preInit()|preInit()]], который настраивает некоторые * Вызывается метод [[yii\base\Application::preInit()|preInit()]], который настраивает некоторые
жизненно важные свойства приложения, такие как [[yii\base\Application::basePath|basePath]]; жизненно важные свойства приложения, такие как [[yii\base\Application::basePath|basePath]];
* Регистрируется [[yii\base\Application::errorHandler|обработчик ошибок]]; * Регистрируется [[yii\base\Application::errorHandler|обработчик ошибок]];
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment