@Quieteroks
php программист

Как пропихнуть массив в DI на Yii2?

Никак не могу понять, как решить вопрос с DI. Массив в зависимостях ОБЯЗАТЕЛЕН. Но так же имеется и класс, который должен взяться из контейнера. Пытаюсь сделать разными способами, но так и не победил еще этот вопрос. Может кто знает?

// PageCountry прописан в контейнере и берется от туда без проблем
class PageValue {
    public function __construct(PageCountry $country, $values) {}
}
$value = \Yii::$container->get(PageValue::class, [], [$value]);
$value = \Yii::$container->get(PageValue::class, [$value]);


Как правильно передать параметры в зависимость?
  • Вопрос задан
  • 88 просмотров
Пригласить эксперта
Ответы на вопрос 1
mitaichik
@mitaichik
Там же в комментах к методу get все написанно. Ну или достаточно чуток покопаться в коде :

\Yii::$container->get - второй параметр - параметры которые передаются в конструктор (Yii их еще дополняет зависимостями).

Внутри контейнер вызывает метод php.net/manual/ru/reflectionclass.newinstanceargs.php

Соответсвенно, судя по документации этого метода, нужно писать
$value = \Yii::$container->get(PageValue::class, [$country, $value]);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы