Commit f172523d by keltstr Committed by Alexander Makarov

Improvements for Russian translation of concept-configurations.md

parent e54fe02a
Настройки Конфигурации
======== ============
Настройки широко используются в Yii при создании новых объектов или при инициализации уже существующих объектов. Конфигурации широко используются в Yii при создании новых объектов или при инициализации уже существующих объектов.
Обычно настройки включают в себя названия классов создаваемых объектов и список первоначальных значений, Обычно конфигурации включают в себя названия классов создаваемых объектов и список первоначальных значений,
которые должны быть присвоены [свойствам](concept-properties.md) объекта. Также в настройках можно указать список которые должны быть присвоены [свойствам](concept-properties.md) объекта. Также в конфигурациях можно указать список
[обработчиков событий](concept-events.md) объекта, и/или список [поведений](concept-behaviors.md) объекта. [обработчиков событий](concept-events.md) объекта, и/или список [поведений](concept-behaviors.md) объекта.
Пример настроек подключения к базе данных и дальнейшей инициализации подключения: Пример конфигурации подключения к базе данных и дальнейшей инициализации подключения:
```php ```php
$config = [ $config = [
...@@ -20,22 +20,22 @@ $config = [ ...@@ -20,22 +20,22 @@ $config = [
$db = Yii::createObject($config); $db = Yii::createObject($config);
``` ```
Метод [[Yii::createObject()]] принимает в качестве аргумента массив настроек и создаёт объект указанного в них класса. Метод [[Yii::createObject()]] принимает в качестве аргумента массив с конфигурацией и создаёт объект указанного в них класса.
При этом оставшаяся часть конфигурации используется для инициализации свойств, обработчиков событий и поведений объекта. При этом оставшаяся часть конфигурации используется для инициализации свойств, обработчиков событий и поведений объекта.
Если объект уже создан, вы можете использовать [[Yii::configure()]] для того, чтобы инициализировать свойства объекта Если объект уже создан, вы можете использовать [[Yii::configure()]] для того, чтобы инициализировать свойства объекта
массивом настроек: массивом с конфигурацией:
```php ```php
Yii::configure($object, $config); Yii::configure($object, $config);
``` ```
Обратите внимание, что в этом случае массив с настройками не должен содержать ключ `class`. Обратите внимание, что в этом случае массив с конфигурацией не должен содержать ключ `class`.
## Формат настроек <a name="configuration-format"></a> ## Формат конфигурации <a name="configuration-format"></a>
Формат настроек выглядит следующим образом: Формат конфигурации выглядит следующим образом:
```php ```php
[ [
...@@ -53,14 +53,14 @@ Yii::configure($object, $config); ...@@ -53,14 +53,14 @@ Yii::configure($object, $config);
создаваемого объекта, а значения — начальными значениями свойств создаваемого объекта. создаваемого объекта, а значения — начальными значениями свойств создаваемого объекта.
Таким способом могут быть установлены только публичные переменные объекта и его [свойства](concept-properties.md), Таким способом могут быть установлены только публичные переменные объекта и его [свойства](concept-properties.md),
созданные через геттеры и сеттеры. созданные через геттеры и сеттеры.
* Элементы `on eventName` указывают какие обработчики должны быть установлены для [событий](concept-events.md) объекта. * Элементы `on eventName` указывают на то, какие обработчики должны быть прикреплены к [событиям](concept-events.md) объекта.
Обратите внимание, что ключи массива начинаются с `on `. Чтобы узнать весь список поддерживаемых видов Обратите внимание, что ключи массива начинаются с `on `. Чтобы узнать весь список поддерживаемых видов
обработчиков событий обратитесь в раздел [события](concept-events.md) обработчиков событий обратитесь в раздел [события](concept-events.md)
* Элементы `as behaviorName` указывают какие [поведения](concept-behaviors.md) должны быть установлены для объекта. * Элементы `as behaviorName` указывают на то, какие [поведения](concept-behaviors.md) должны быть внедрены в объект.
Обратите внимание, что ключи массива начинаются с `as `. `$behaviorConfig` это массив для настройки Обратите внимание, что ключи массива начинаются с `as `; а `$behaviorConfig` представляет собой конфигурацию для
поведения, этот массив такой же как тот, о котором идет речь. создания [поведения](concept-behaviors.md), похожую на все остальные конфигурации.
Пример настроек с установкой первоначальных значений свойств объекта, обработчика событий и поведения: Пример конфигурации с установкой первоначальных значений свойств объекта, обработчика событий и поведения:
```php ```php
[ [
...@@ -77,21 +77,21 @@ Yii::configure($object, $config); ...@@ -77,21 +77,21 @@ Yii::configure($object, $config);
``` ```
## Использование настроек <a name="using-configurations"></a> ## Использование конфигурации <a name="using-configurations"></a>
Возможность настройки широко используется в Yii. В самом начале данной главы мы узнали как Конфигурации повсеместно используются в Yii. В самом начале данной главы мы узнали как
создать объект с необходимыми параметрами используя метод [[Yii::createObject()]]. создать объект с необходимыми параметрами используя метод [[Yii::createObject()]].
В данном разделе речь пойдет о настройках приложения и настройках виджетов — двух основных способов В данном разделе речь пойдет о конфигурации приложения и конфигурациях виджетов — двух основных способов
использования настроек. использования конфигурации.
### Настройки приложения <a name="application-configurations"></a> ### Конфигурация приложения <a name="application-configurations"></a>
Настройки [приложения](structure-applications.md) пожалуй самые сложные из используемых в фреймворке. Конфигурация [приложения](structure-applications.md), пожалуй, самая сложная из используемых в фреймворке.
Причина в том, что класс [[yii\web\Application|application]] содержит большое количество настраиваемых Причина в том, что класс [[yii\web\Application|application]] содержит большое количество конфигурируемых
свойств и событий. Более того, свойство приложения [[yii\web\Application::components|components]] свойств и событий. Более того, свойство приложения [[yii\web\Application::components|components]]
может принимать массив настроек для создания компонентов, регистрируемых на уровне приложения. может принимать массив с конфигурацией для создания компонентов, регистрируемых на уровне приложения.
Пример настроек приложения для [шаблона приложения basic](start-basic.md). Пример конфигурации приложения для [шаблона приложения basic](start-basic.md).
```php ```php
$config = [ $config = [
...@@ -125,22 +125,22 @@ $config = [ ...@@ -125,22 +125,22 @@ $config = [
]; ];
``` ```
Ключ `class` в данных настройках не указывается. Причина в том, что класс вызывается по полному имени во Ключ `class` в данной конфигурации не указывается. Причина в том, что класс вызывается по полному имени во
[входном скрипте](structure-entry-scripts.md): [входном скрипте](structure-entry-scripts.md):
```php ```php
(new yii\web\Application($config))->run(); (new yii\web\Application($config))->run();
``` ```
Для более подробной документации о настройке свойства приложения `components` обратитесь к главам За более подробной документацией о настройках свойства `components` в конфигурации приложения обратитесь к главам
[приложения](structure-applications.md) и [Service Locator](concept-service-locator.md). [приложения](structure-applications.md) и [Service Locator](concept-service-locator.md).
### Настройки виджетов <a name="widget-configurations"></a> ### Конфигурации виджетов <a name="widget-configurations"></a>
При использовании [виджетов](structure-widgets.md) часто возникает необходимость изменить параметры виджета с помощью При использовании [виджетов](structure-widgets.md) часто возникает необходимость изменить параметры виджета с помощью
настроек. Для создания виджета можно использовать два метода: [[yii\base\Widget::widget()]] и конфигурации. Для создания виджета можно использовать два метода: [[yii\base\Widget::widget()]] и
[[yii\base\Widget::beginWidget()]]. Оба метода принимают настройки в виде массива: [[yii\base\Widget::beginWidget()]]. Оба метода принимают конфигурацию в виде PHP массива:
```php ```php
use yii\widgets\Menu; use yii\widgets\Menu;
...@@ -161,11 +161,11 @@ echo Menu::widget([ ...@@ -161,11 +161,11 @@ echo Menu::widget([
Обратите внимание что параметр `class` НЕ передается, так как полное имя уже указано. Обратите внимание что параметр `class` НЕ передается, так как полное имя уже указано.
## Файлы Настроек <a name="configuration-files"></a> ## Конфигурационные файлы <a name="configuration-files"></a>
Если настройки сложные, то их, как правило, разделяют по нескольким PHP файлам. Такие файлы называют Если конфигурация очень сложная, то её, как правило, разделяют по нескольким PHP файлам. Такие файлы называют
*файлами настроек* или *конфигурационными файлами*. Файл настроек возвращает массив PHP с настройками. *Конфигурационными файлами*. Конфигурационный файл возвращает массив PHP являющийся конфигурацией.
Например, настройки приложения можно хранить в отдельном файле `web.php`, как показано ниже: Например, конфигурацию приложения можно хранить в отдельном файле `web.php`, как показано ниже:
```php ```php
return [ return [
...@@ -207,7 +207,7 @@ return [ ...@@ -207,7 +207,7 @@ return [
]; ];
``` ```
Чтобы получить настройки, хранимые в файле, достаточно подключить файл с помощью `require`: Чтобы получить конфигурацию, хранящуюся в файле, достаточно подключить файл с помощью `require`:
```php ```php
$config = require('path/to/web.php'); $config = require('path/to/web.php');
...@@ -215,12 +215,10 @@ $config = require('path/to/web.php'); ...@@ -215,12 +215,10 @@ $config = require('path/to/web.php');
``` ```
## Настройки по умолчанию <a name="default-configurations"></a> ## Значения конфигурации по умолчанию <a name="default-configurations"></a>
Метод [[Yii::createObject()]] реализован с использованием [dependency injection container](concept-di-container.md). Метод [[Yii::createObject()]] реализован с использованием [dependency injection container](concept-di-container.md).
Это позволяет указывать так называемые *настройки по умолчанию*, которые будут применены ко ВСЕМ экземплярам классов Это позволяет задавать так называемые *значения конфигурации по умолчанию*, которые будут применены ко ВСЕМ экземплярам классов во время их инициализации методом [[Yii::createObject()]]. Значения конфигурации по умолчанию указываются с помощью метода `Yii::$container->set()` на этапе [предварительной загрузки](runtime-bootstrapping.md).
во время их инициализации методом [[Yii::createObject()]]. Настройки по умолчанию указываются с помощью метода
`Yii::$container->set()` на этапе [предварительной загрузки](runtime-bootstrapping.md).
Например, если мы хотим изменить виджет [[yii\widgets\LinkPager]] так, чтобы все виджеты данного вида показывали максимум Например, если мы хотим изменить виджет [[yii\widgets\LinkPager]] так, чтобы все виджеты данного вида показывали максимум
5 кнопок на странице вместо 10 (как это установлено изначально), можно использовать следующий код: 5 кнопок на странице вместо 10 (как это установлено изначально), можно использовать следующий код:
...@@ -231,15 +229,15 @@ $config = require('path/to/web.php'); ...@@ -231,15 +229,15 @@ $config = require('path/to/web.php');
]); ]);
``` ```
Если бы мы не установили настройки по умолчанию, то тогда нам нужно было бы каждый раз при использовании LinkPager Без использования значений конфигурации по умолчанию, при использовании LinkPager, вам пришлось бы каждый раз
указывать настройки `maxButtonCount`. задавать значение `maxButtonCount`.
## Константы окружения <a name="environment-constants"></a> ## Константы окружения <a name="environment-constants"></a>
Настройки могут различаться в зависимости от окружения, в котором происходит запуск приложения. Например, Конфигурации могут различаться в зависимости от режима, в котором происходит запуск приложения. Например,
в окружении разработчика вы используете базу данных `mydb_dev`, а на продакшн сервере базу данных в окружении разработчика (development) вы используете базу данных `mydb_dev`, а в эксплуатационном (production) окружении
`mydb_prod`. Для упрощения смены окружений в Yii существует константа `YII_ENV`. Вы можете указать её во базу данных `mydb_prod`. Для упрощения смены окружений в Yii существует константа `YII_ENV`. Вы можете указать её во
[входном скрипте](structure-entry-scripts.md) своего приложения: [входном скрипте](structure-entry-scripts.md) своего приложения:
```php ```php
...@@ -248,20 +246,20 @@ defined('YII_ENV') or define('YII_ENV', 'dev'); ...@@ -248,20 +246,20 @@ defined('YII_ENV') or define('YII_ENV', 'dev');
`YII_ENV` может принимать следующие значения: `YII_ENV` может принимать следующие значения:
- `prod`: production окружение, т.е. окружение для конечного сервера. Константа `YII_ENV_PROD` установлена в true. - `prod`: окружение production, т.е. эксплуатационный режим сервера. Константа `YII_ENV_PROD` установлена в true.
Значение по умолчанию. Значение по умолчанию.
- `dev`: development окружение, т.е. окружение для разработки. Константа `YII_ENV_DEV` установлена в true. - `dev`: окружение development, т.е. режим для разработки. Константа `YII_ENV_DEV` установлена в true.
- `test`: testing окружение, т.е. окружения для тестирования. Константа `YII_ENV_TEST` установлена в true. - `test`: окружение testing, т.е. режим для тестирования. Константа `YII_ENV_TEST` установлена в true.
Используя эти константы вы можете изменить настройки в соответствии с вашим окружением. Используя эти константы, вы можете задать в конфигурации значения параметров зависящие от текущего окружения.
Например, чтобы включить [отладочную панель и отладчик](tool-debugger.md) в development окружении вы можете использовать Например, чтобы включить [отладочную панель и отладчик](tool-debugger.md) в режиме разработки, вы можете использовать
следующие настройки приложения: следующий код в конфигурации приложения:
```php ```php
$config = [...]; $config = [...];
if (YII_ENV_DEV) { if (YII_ENV_DEV) {
// настройки для 'dev' окружения // значения параметров конфигурации для окружения разработки 'dev'
$config['bootstrap'][] = 'debug'; $config['bootstrap'][] = 'debug';
$config['modules']['debug'] = 'yii\debug\Module'; $config['modules']['debug'] = 'yii\debug\Module';
} }
......
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