Size: a a a

2020 November 26

AS

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

AS

Alexey Samoylov in Yii Framework 3
типа сортировки поверх ComparableInterface
источник

NO

Nex Otaku in Yii Framework 3
Не, фича мощная. Я уже вижу что можно мой код посокращать где я колбеки передаю. Прям топчик.
источник

NO

Nex Otaku in Yii Framework 3
Alexander Borisov
И как IDE узнает, что инстансы userMap - это User?
IDE не знает про анонимные классы. Никак.
источник

AS

Alexey Samoylov in Yii Framework 3
Nex Otaku
IDE не знает про анонимные классы. Никак.
PHPStorm нормально трекает иерархию анонимных классов
источник

AS

Alexey Samoylov in Yii Framework 3
можно сделать public function getSome() { return new class extends Ololo; } и $this->getSome()->... нормально раскроется
источник

AB

Alexander Borisov in Yii Framework 3
Nex Otaku
IDE не знает про анонимные классы. Никак.
не, я про один из сайдэффектов дженериков. Без доп. док. блоков можно узнать тип возвращаемых методов.
Что-то вроде:
ObjectManager<T> { public function createInstance(): T { return new T; } };
$manager = ObjectManager<User>();
$manager->createInstance() // User instance
источник

NO

Nex Otaku in Yii Framework 3
Ну это можно плагином Шторма запилить. Без док-блоков.
источник

NO

Nex Otaku in Yii Framework 3
Либо в той же анонимной коллекции указать возвращаемые типы и научить Шторм их распознавать.
источник

NO

Nex Otaku in Yii Framework 3
Alexey Samoylov
можно сделать public function getSome() { return new class extends Ololo; } и $this->getSome()->... нормально раскроется
Это отлично )
источник

AB

Alexander Borisov in Yii Framework 3
Nex Otaku
Ну это можно плагином Шторма запилить. Без док-блоков.
Каким образом? T должна быть доступна на уровне объекта. Без кодогенерации такого не сделать
источник

AB

Alexander Borisov in Yii Framework 3
Но вообще дженериков хватает на уровне псалма 🙂
источник

AM

Alexander Makarov in Yii Framework 3
https://github.com/yiisoft/middleware-dispatcher/pull/10 у кого есть время, посмотрите код. Норм?
источник

AB

Alexander Borisov in Yii Framework 3
А какой юзкейс?
источник

AM

Alexander Makarov in Yii Framework 3
В основном, сбор инфы для отладки.
источник

AM

Alexander Makarov in Yii Framework 3
Вопрос хороший :)
источник

AB

Alexander Borisov in Yii Framework 3
Почему ее нельзя собирать на уровне мидлварей? Первой и последней
источник

AM

Alexander Makarov in Yii Framework 3
@xepozz думаю, вопрос к тебе: https://github.com/yiisoft/yii-web/pull/225
источник

AB

Alexander Borisov in Yii Framework 3
ой… это ж эвенты на каждую мидльварю
источник

AM

Alexander Makarov in Yii Framework 3
да
источник