Size: a a a

2020 April 08

DS

Dmitriy S in Yii Framework 3
А если сейчас наченем как в инжекторе выдумывать, то это только запутает разработчиков. В инжекторе, кстати, там не все кейсы покрыты, вечером проверю еще
источник

AM

Alexander Makarov in Yii Framework 3
Dmitriy S
Штука в том, что если мы сейчас оставим только именованные, а будут ишью по таким кейсам, как у Дмитрия выше с запаковкой параметров, то мы сможем допилить, обратная совместимость сохранится.
Именованные вообще не очень хорошая штука...
источник

AM

Alexander Makarov in Yii Framework 3
Рефакторинг типа rename их не цепляет.
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
Именованные вообще не очень хорошая штука...
Для конструктора - норм
источник

AM

Alexander Makarov in Yii Framework 3
Ломаться будет...
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
Ломаться будет...
И так как в инжекторе тоже будет
источник

DS

Dmitriy S in Yii Framework 3
Запушу тестов часа через два-три
источник

AM

Alexander Makarov in Yii Framework 3
В инжекторе это не везде. Это только в приложении. Мы его сознательно юзаем.
источник

AM

Alexander Makarov in Yii Framework 3
А тут для всего подряд.
источник

AM

Alexander Makarov in Yii Framework 3
В том числе для библиотек, которые на такое не рассчитывают. И правильно делают, ведь как таковая смена имени параметра конструктора ни на что не влияет.
источник

DS

Dmitriy S in Yii Framework 3
Ну предложи свой вариант для коструктора вида
__construct(MyClass1 $class1, string $path, MyClass2 $class2, int $level = 4)
источник

DS

Dmitriy S in Yii Framework 3
Тут надо задать $path и $level
источник

DS

Dmitriy S in Yii Framework 3
И второй класс через Reference::to()
источник

Д

Дмитрий in Yii Framework 3
Alexander Makarov
Рефакторинг типа rename их не цепляет.
плюсы переваливают минусы
источник

DS

Dmitriy S in Yii Framework 3
У меня сейчас, если откинуть подстановку по типу, то будет так
'__construct()' => ['class1' => $class1, 'mypath', Reference::to('class2'), 5]
источник

Д

Дмитрий in Yii Framework 3
@samdark что по композер-плагинским ПР?
источник

DS

Dmitriy S in Yii Framework 3
Dmitriy S
У меня сейчас, если откинуть подстановку по типу, то будет так
'__construct()' => ['class1' => $class1, 'mypath', Reference::to('class2'), 5]
Или так
'__construct' => [1 => 'mypath', 2 => Reference::to('class2'), 3 => 5 ]
источник

DS

Dmitriy S in Yii Framework 3
Первый параметр заинжектится здесь контейнером
источник

DS

Dmitriy S in Yii Framework 3
Alexander Makarov
В том числе для библиотек, которые на такое не рассчитывают. И правильно делают, ведь как таковая смена имени параметра конструктора ни на что не влияет.
Ну поменяет стороння библиотека имя параметра - переименуешь в конфиге. А если местами переставит, то как ты сейчас это решать будешь? Тоже сломается.
источник

DS

Dmitriy S in Yii Framework 3
А еще в сторонних библиотеках могут быть нетипизированные параметры, а их инжектор не поддерживает
источник