@@ -139,9 +139,8 @@ $container->set('pageCache', new FileCache);
...
@@ -139,9 +139,8 @@ $container->set('pageCache', new FileCache);
> Подсказка: Если имя зависимости такое же, как и определение соответствующей зависимости, то её повторная регистрация в контейнере внедрения зависимостей не нужна.
> Подсказка: Если имя зависимости такое же, как и определение соответствующей зависимости, то её повторная регистрация в контейнере внедрения зависимостей не нужна.
A dependency registered via `set()` will generate an instance each time the dependency is needed.
Зависимость, зарегистрированная через `set()` создаёт экземпляр каждый раз, когда зависимость необходима.
You can use [[yii\di\Container::setSingleton()]] to register a dependency that only generates
Вы можете использовать [[yii\di\Container::setSingleton()]] для регистрации зависимости, которая создаст только один экземпляр:
После регистрации зависимостей, вы можете использовать контейнер внедрения зависимостей (DI) для создания новых объектов,
и контейнер автоматически разрешит зависимости их экземпляра и их внедрений во вновь создаваемых объектах. Разрешение зависимостей рекурсивно, то есть
если зависимость имеет другие зависимости, эти зависимости также будут автоматически разрешены.
Once you have registered dependencies, you can use the DI container to create new objects,
Вы можете использовать [[yii\di\Container::get()]] для создания новых объектов. Метод принимает имя зависимости, которым может быть имя класса, имя интерфейса или псевдоним.
and the container will automatically resolve dependencies by instantiating them and injecting
Имя зависимости может быть или не может быть зарегистрирована через `set()` или `setSingleton()`.
them into the newly created objects. The dependency resolution is recursive, meaning that
Вы можете опционально предоставить список параметров конструктора класса и [конфигурацию](concept-configurations.md) для настройки созданного объекта.
if a dependency has other dependencies, those dependencies will also be resolved automatically.
Например,
You can use [[yii\di\Container::get()]] to create new objects. The method takes a dependency name,
which can be a class name, an interface name or an alias name. The dependency name may or may
not be registered via `set()` or `setSingleton()`. You may optionally provide a list of class
constructor parameters and a [configuration](concept-configurations.md) to configure the newly created object.
For example,
```php
```php
// "db" is a previously registered alias name
// "db" ранее зарегистрированный псевдоним
$db=$container->get('db');
$db=$container->get('db');
// equivalent to: $engine = new \app\components\SearchEngine($apiKey, ['type' => 1]);
// эквивалентно: $engine = new \app\components\SearchEngine($apiKey, ['type' => 1]);