
Kirill
04.04.2017
11:36:43
нет

Evgeniy
04.04.2017
11:37:15
сейчас открою повторю

Kirill
04.04.2017
11:37:16
не суть
это частный случай, когда типы не теряются

Google

Vladislav
04.04.2017
11:37:31
в PHP Storm /** @var ExternalArticle $record **/ и все

Kirill
04.04.2017
11:37:45
потому что декларация типа действует на весь локальный скоуп

Evgeniy
04.04.2017
11:38:06
и потеряется

Kirill
04.04.2017
11:38:09
но в других случаях мы его петеряем, да

Evgeniy
04.04.2017
11:38:18
так вот разговор об этом
чтобы такое не терялось надо или делать кучу булшит кода коллекций которые в phpdoc нужные объекты возвращают
или согласится с этими потерями

Kirill
04.04.2017
11:39:19
или делать как все - помечать в инлайне

Evgeniy
04.04.2017
11:39:33
и очень жаль что нету дженериков или как в java или хотя бы на уровне phpdoc

Kirill
04.04.2017
11:39:34
как привл в пример выше Владислав

Evgeniy
04.04.2017
11:39:43

Kirill
04.04.2017
11:39:45

Google

Kirill
04.04.2017
11:39:47
в phpdoc

Evgeniy
04.04.2017
11:39:48
который дает phpdoc

Kirill
04.04.2017
11:39:52
это шторм их не поддерживает
повторяюсь, в phpdoc есть дженерики

Evgeniy
04.04.2017
11:40:13
да я знаю /** @var $newC ExternalArticle[] */

Kirill
04.04.2017
11:40:15
но шторм их не поддерживает
нет
Collection<User>

Evgeniy
04.04.2017
11:40:39

Василий
04.04.2017
11:40:54
котаны, может вы в привате продолжите это обсуждение?

Evgeniy
04.04.2017
11:40:58
именно на доку по phpdoc где дженерик

Kirill
04.04.2017
11:41:05
https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#abnf

Evgeniy
04.04.2017
11:41:24

Kirill
04.04.2017
11:41:25
https://github.com/phpDocumentor/fig-standards/blob/master/proposed/phpdoc.md#collections

Evgeniy
04.04.2017
11:41:42
это тоже только предложенный, еще не принятый
я это видел
но это лишь предложение
которое еще не принято

Kirill
04.04.2017
11:42:47
в phpdocumentator этого нет, если что, верно https://www.phpdoc.org/docs/latest/references/phpdoc/types.html#abnf

Evgeniy
04.04.2017
11:43:51
то что ты показал и про возврат массивов объектов и про документации типов находу через @var

Google

Evgeniy
04.04.2017
11:43:55
я все знал
и ты верно говоришь по этому поводу

Kirill
04.04.2017
11:44:14
так надо было сразу сказать
что проблема в потере типов из источника при множественной передаче

Evgeniy
04.04.2017
11:44:57
я не знал как это формулируется, я показал пример что в java с этим проблем нет

Kirill
04.04.2017
11:44:59
и не было бы срача +)

Evgeniy
04.04.2017
11:45:12
срача и не было )

Kirill
04.04.2017
11:45:15
есть жи

Evgeniy
04.04.2017
11:45:17
было общение)

Kirill
04.04.2017
11:45:31
в джаве можно указать интерфейс для T
и будет потеря инфы о типе, имплементирующем интерфейс

Evgeniy
04.04.2017
11:45:51
да который расширяется)

Evgeniy
04.04.2017
11:45:57
так это я как плюс рассматриваю
полиморфизм же

Kirill
04.04.2017
11:46:18
ну так в коллекции мы тоже можем указать, что возвращаем интерфейс

Evgeniy
04.04.2017
11:46:25
указал интерфейс и складируй туда что угодно с этим интерфейсом)ъ
да
так приходится колхозить)

Kirill
04.04.2017
11:46:42
ну как в джаве
только в пыхе не надо кода писать

Google

Aleh
04.04.2017
11:46:56

Evgeniy
04.04.2017
11:47:14
в java например T instandof RecordInterface

Kirill
04.04.2017
11:47:25
/**
* @method SomeInterface first()
* @method SomeInterface last()
*/
class ItemsCollection extends Collection {}
но да, это пипец

Evgeniy
04.04.2017
11:47:59
и ты пишешь ArrayList<~> = new ArrayList(users); где users это массив User который имплементят RecordInterface

Kirill
04.04.2017
11:48:00
:D

Evgeniy
04.04.2017
11:48:11
ой уже от java отвык ArrayList<~> collection = new ArrayList(users);
collection.get(0); вернет юзера вроде

Kirill
04.04.2017
11:48:57
только без тильды =)

Admin
ERROR: S client not available

Evgeniy
04.04.2017
11:48:58
по старой памяти
ну да с java 7 так можно стало

Kirill
04.04.2017
11:49:28
или через ArrayList<User> collection если 6

Evgeniy
04.04.2017
11:49:41
да
но там пинали java за то что проверка типа только на этапе компиляции была

Kirill
04.04.2017
11:50:15
но всё равно типы дополнительно указываются же в циклах

Evgeniy
04.04.2017
11:50:15
а в реальности в рантейме было ArrayList<Object>
да компликт был правильный везде

Kirill
04.04.2017
11:50:26
for (User user: collection) {
...
}

Google

Evgeniy
04.04.2017
11:50:42
это тоже java7 в java 6 так низя было )))
вроде

Kirill
04.04.2017
11:51:00
не помню +)
и чем это отличается от?
/** @var User $user */
foreach ($collection as $user) { .... }

Evgeniy
04.04.2017
11:51:17
мне в пхп не хватает таких generic как в java

Kirill
04.04.2017
11:51:21
ну да, лаконичнее

Evgeniy
04.04.2017
11:51:25
комментом))
не хватает нормальных анотаций

Kirill
04.04.2017
11:51:37
ой, знаешь сколько всего мне в пыхе не хватает?
:D

Evgeniy
04.04.2017
11:51:45
а не комментариев с разбором их регекспом)
и перегрузки методов)

Kirill
04.04.2017
11:52:07
ну, перегрузка спорна
хотя

Evgeniy
04.04.2017
11:52:25

Kirill
04.04.2017
11:52:26
ну да, наверное всё же нужна

Jan
04.04.2017
11:52:31
как её сделать при динамической типизации-то

Evgeniy
04.04.2017
11:52:39

Kirill
04.04.2017
11:53:04
да можно естественно, выкидывать ошибки при конфликтах, а остальное как в жабе

Evgeniy
04.04.2017
11:53:59
сейчас это делает слегка костыльно без перегрузки методов в языке
например когда надо конструктор из разных типов
сделать
ты делаешь основной конструктор приватным