Size: a a a

2020 March 14

ЕР

Евгений Ромашкан in PHP
Egor Gorbachev
Расскажите как сейчас у PHP обстоят дела со статической типизацией. IDE поддерживает cтат анализаторы? В psalm там до сих пор нужно отдельно описывать psalm-типы и phpdoc даже когда типы совпадают? Можно ли сужать типы if'ами как в TS? Можно ли типизировать ассоциативные массивы (например если я не хочу создавать кучу DTO классов, но хочу автокомплит и рефакторинг в IDE). Планируются ли какие-то подвижки в сторону стат типизации на уровне языка как в Python 3.5+?
IDE поддерживает cтат анализаторы?
Нет, можешь попытаться юзать language server

В psalm там до сих пор нужно отдельно описывать psalm-типы и phpdoc даже когда типы совпадают?

Да, но псалм умеет понимать и стандартные пхп-доки.

Можно ли сужать типы if'ами как в TS?

Потыкай https://psalm.dev/

Можно ли типизировать ассоциативные массивы
Да

но хочу автокомплит и рефакторинг в IDE)
А вот это вряд ли будет,  я language server не юзаю но не помню чтобы там рефакторинг был
источник

SS

Stepan Skopivskiy in PHP
Альберт Степанцев
и не будет никогда
Ой я б не бил таким уверенним)
источник

АС

Альберт Степанцев in PHP
не "бидь"
источник

ЕР

Евгений Ромашкан in PHP
Stepan Skopivskiy
Ой я б не бил таким уверенним)
Если ток через 200 лет откопают пхп и добавят по приколу студенты какого-нибудь вуза :)
источник

ЕР

Евгений Ромашкан in PHP
Альберт Степанцев
есть рантаймовый контроль типов
Есть статический анализ.
источник

АС

Альберт Степанцев in PHP
это не часть языка
источник

ЕР

Евгений Ромашкан in PHP
Альберт Степанцев
это не часть языка
А компилятор - часть?
источник

АС

Альберт Степанцев in PHP
компилятор - часть реализации
на данный момент одной, единственной
источник

АС

Альберт Степанцев in PHP
вопросы?
источник

ЕР

Евгений Ромашкан in PHP
Что если для языка есть разные компиляторы?)
источник

ЕР

Евгений Ромашкан in PHP
Все - часть языка?
источник

АС

Альберт Степанцев in PHP
хотя, чисто теоретически, побаловаться  хипхопом или kPHP можно
источник

АС

Альберт Степанцев in PHP
но зачем?
источник

ЕР

Евгений Ромашкан in PHP
Ну вот
источник

АС

Альберт Степанцев in PHP
Евгений Ромашкан
Все - часть языка?
конечно нет
компилятор - вообще не часть языка
а реализация его
источник

АС

Альберт Степанцев in PHP
читать не умеете?
выше?
источник

ЕР

Евгений Ромашкан in PHP
Я не распарсил без уточнений фразу "часть реализации
на данный момент одной, единственной"
источник

АС

Альберт Степанцев in PHP
))
источник

АС

Альберт Степанцев in PHP
бывает
источник

EG

Egor Gorbachev in PHP
Евгений Ромашкан
IDE поддерживает cтат анализаторы?
Нет, можешь попытаться юзать language server

В psalm там до сих пор нужно отдельно описывать psalm-типы и phpdoc даже когда типы совпадают?

Да, но псалм умеет понимать и стандартные пхп-доки.

Можно ли сужать типы if'ами как в TS?

Потыкай https://psalm.dev/

Можно ли типизировать ассоциативные массивы
Да

но хочу автокомплит и рефакторинг в IDE)
А вот это вряд ли будет,  я language server не юзаю но не помню чтобы там рефакторинг был
Спасибо, вывод типов неплохой. А кто-то вообще юзает это в продакшене тут, как в целом впечатления? :)
источник