Size: a a a

2021 March 12

AB

Alexander Borisov in Yii Framework 3
Виктор
В принципе да, если ты зависишь от некоего класса с методом get, определяющим возвращаемое значение, внутренняя реализация этого класса для использующего его сервиса действительно неважна, хоть от контейнера наследуйся. Просто в предложенной тобой реализации те же самые проблемы будут на другом уровне, на уровне твоего сервис локатора, т.к. он теперь зависит (даже хуже: наследуется) от непойми чего.
не понял, в чем проблема наследования?
источник

В

Виктор in Yii Framework 3
Alexander Borisov
не понял, в чем проблема наследования?
сервис напрямую тянет за собой не только те зависимости, что ему реально нужны, а вообще все, что находится в родительском локаторе.
источник

В

Виктор in Yii Framework 3
все, включая его логику относительно того, что сервису не нужно
источник

AB

Alexander Borisov in Yii Framework 3
Виктор
сервис напрямую тянет за собой не только те зависимости, что ему реально нужны, а вообще все, что находится в родительском локаторе.
нет, там только то, что указано в конфиге
источник

AB

Alexander Borisov in Yii Framework 3
основной контейнер приложения туда не прокидывается
источник

В

Виктор in Yii Framework 3
Alexander Borisov
Ну да, берется базовый локатор и у него переопределяется метод get:
```
public function get(string $id): GeneratorInterface
{
   return parent::
get($id);
}

```
вызов parent намекает, что в конфиге указано не только то, что может понадобится в этом конкретном месте
источник

AB

Alexander Borisov in Yii Framework 3
Виктор
вызов parent намекает, что в конфиге указано не только то, что может понадобится в этом конкретном месте
мы это делаем только для type-hint, как раз чтобы быть уверенным, что возвращаются только нужные инстансы
источник

В

Виктор in Yii Framework 3
Alexander Borisov
мы это делаем только для type-hint, как раз чтобы быть уверенным, что возвращаются только нужные инстансы
Тогда, в общем-то, все норм. Пока в локатор не нужна какая-то логика и типы зависимостей явно определены, все норм. Включая наследование на 1 уровень.
источник

AB

Alexander Borisov in Yii Framework 3
При желании можно компайлер-пасс накинуть, чтоб на этапе компиляции если какой-нибудь сервис интерфейс нужный не импелементирует бросалось бы исключение. Но это уже паранойя
источник

Д

Дмитрий in Yii Framework 3
а может есть уже что-то, чем можно инфу из runtime/debug смотреть удобно?
источник

В

Виктор in Yii Framework 3
Часть инфы точно уже смотреть можно было. Вопрос в том, как эту смотрелку подключать. Я не вникал, на какой она стадии. Но @dgritsenko знает подробности)
источник

В

Виктор in Yii Framework 3
Дмитрий
а может есть уже что-то, чем можно инфу из runtime/debug смотреть удобно?
А можно и самому поисследовать https://github.com/yiisoft/yii-debug-frontend
источник

Д

Дмитрий in Yii Framework 3
ок
источник

В

Виктор in Yii Framework 3
Кстати, еще вроде @rustamwin хорошо в курсе по фронту дебаггера 😈 Я нынче стрелочником подрабатываю.
источник

А

Алексей R in Yii Framework 3
Вот что значит пакет для внутреннего использования )
источник

AB

Alexander Borisov in Yii Framework 3
это однорукий бандит? ты выиграл!
источник

🐾

🐾Sofiya 🎈 in Yii Framework 3
Алексей R
Вот что значит пакет для внутреннего использования )
Джекпот!
источник

AL

Andrey Lukyanov in Yii Framework 3
прикольно )
источник

AL

Andrey Lukyanov in Yii Framework 3
источник

AM

Alexander Makarov in Yii Framework 3
Andrey Lukyanov
прикольно )
Хе-хе. Походу, это updated_at.
источник