Size: a a a

Генератор непрочитанных сообщений

2020 June 23

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Если гетпроп нуллабл возвращает, но здесь именно в этом месте ты точно знаешь что он не нулл, просто прописываешь /** @var int $prop */
источник

F

Faust in Генератор непрочитанных сообщений
Там у элоквента работа с пропсами уродливая
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Ну я вообще
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Ты можешь любой тип так прописать куда угодно
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Dmitriy Tkachenko
Если гетпроп нуллабл возвращает, но здесь именно в этом месте ты точно знаешь что он не нулл, просто прописываешь /** @var int $prop */
На самом деле это подход надо дорабатывать. Он плохой.
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Aleksandr Khristenko
На самом деле это подход надо дорабатывать. Он плохой.
Во всякой инфраструктурой срани типа восстановление из бд у меня много так понатыкано
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Муторно объявлять и проверять все, когда шанс выпадения в рантайме там меньше сотой процента
источник

P

Panda🤔 in Генератор непрочитанных сообщений
да, у меня такой легаси код был почти весь
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Dmitriy Tkachenko
Во всякой инфраструктурой срани типа восстановление из бд у меня много так понатыкано
Как пример, справа от присваивания была функция еще не покрытая типами. Но мы знали что возвращается стринг. Прописали /** @var string */
После этого прошел рефакторинг, и теперь функция возвращет string и в типе у функции это прописано. Но псалм не будет ругаться и будет считать что там инт.
источник

P

Panda🤔 in Генератор непрочитанных сообщений
на тайпхинтах прям в коде
источник

P

Panda🤔 in Генератор непрочитанных сообщений
Aleksandr Khristenko
Как пример, справа от присваивания была функция еще не покрытая типами. Но мы знали что возвращается стринг. Прописали /** @var string */
После этого прошел рефакторинг, и теперь функция возвращет string и в типе у функции это прописано. Но псалм не будет ругаться и будет считать что там инт.
так это же ни на что не влияет особо
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Т.е. такое переопределение дожно работать, если справа у нас не выведен тип или mixed или какой-то надтип типа слева. В противном случае дожно возвращать варнинг.
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Aleksandr Khristenko
На самом деле это подход надо дорабатывать. Он плохой.
Плюс кроме сигнатурных контрактов есть поведенческие
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Panda🤔
так это же ни на что не влияет особо
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Мы пропихнули стринг на место int и псалм ничего не сказал.
источник

P

Panda🤔 in Генератор непрочитанных сообщений
но пых же скажет
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
Panda🤔
но пых же скажет
В рантайме. Когда упадет. Очень вовремя.
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Что то не могу представить рефакторинга кода, со сменой типа и без проверки клиентов
источник

A

Aleksandr Khristenko in Генератор непрочитанных сообщений
В смысле без проверки клиентов?
источник

DT

Dmitriy Tkachenko in Генератор непрочитанных сообщений
Если мне нужно поменять тип я лучше ещё функцию заведу
источник