LINUX.ORG.RU

PHPStan 1.0

 


0

1

Спустя 6 лет разработки вышла первая «мажорная» версия статического анализатора PHP-кода PHPStan.

Нововведения:

  • Для более лёгкого выбора правил в PHPStan существует система правил. 0 уровень соответствует самому щадящему набору правил, а 8 соответствовал самому строгому. В этом же релизе добавлен новый 9 уровень, ограничивающий использование типа mixed, который теперь можно передавать лишь другому mixed.
  • PHPStan теперь может запоминать, что функция, вызываемая второй раз, должна вернуть тот же результат.
  • Аннотации @throws теперь полностью учитываются, когда проверяются блоки catch и finally.
  • Добавлена поддержка определения неиспользованных закрытых свойств, методов и констант.
  • Добавлена проверка типов массивов и параметров callback-функций, которые должны обрабатывать эти массивы.
  • Рекурсивная проверка типов: теперь недостаточно просто указать array<array>, надо объявить тип и для вложенного массива.
  • Поддержка PHPDocs-описания типов, так, к примеру, указание типов для элементов массива (array shape) теперь производится при помощи синтаксиса array{...}, а не array(...).

Стоит также заметить, что модель разработки PHPStan несколько необычна: нововведения добавляются в основную ветку, но остаются выключенными до следующего значительного релиза.

>>> Подробности

>>> Полный список изменений

★★★

Проверено: Zhbert ()

Ответ на: комментарий от s-warus

Быстро сделать консольное приложение или GUI, и bash для ваших задач не очень, привет питону, хотя есть си, си++, но новичку проще в питоне, отладка в си мне больше нравится, но набросать пару строчек в питоне проще.

Проще всего набросать пару строк - в Ruby. Или в quickjs.

Но в сраных «серьёзных проектах» куда ни плюнь везде мелкая автоматизация написана на питоне.

Тут чо-т устал от питона на работе, думаю, дай-ка покопаюсь в коде своего форка редактора на си, который подпиливаю под свои нужды помаленьку. Зашел в каталог и вспомнил, что там куча обвязки для сборки проекта написана на втором питоне, который мне теперь предстоит портировать на третий. Закрыл нахрен и пошел за пивом.

wandrien ()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от theNamelessOne

Вот вот. Там было написано про Джаву, на что я привел кусок кода и попросил то же самое написать на Джаве.

Неважно ПХП говно или не говно, неважно говно код или не говно, словоблудие мне не интересно: я попросил код на Джаве.

windows10 ★★★ ()
Ответ на: комментарий от anonymous

Пыха не дырявая и не падучая.
Она просто ущербная по своей природе.
Вернее она ущербная для того, для чего её используют.
Если её использовать для того, для чего её придумали, то есть для того что бы на статическом сайте добавить обработку для одной формочки Пыха самое оно.

sphericalhorse ★★★★ ()
Ответ на: комментарий от anonymous

2021 год скоро кончится… Кто в своем уме будет этой дрянью пользоваться?

https://w3techs.com/technologies/history_overview/programming_language/ms/y

Почти 80% сайтов в Интернете смотрит в тебя с грустью и недоумением.

anonymous ()
Ответ на: комментарий от wandrien

стыдно я Ruby не знаю, про quickjs только сейчас услышал.
у питона есть плюс он и в винде работает.
есть и огромный минус, нужен был простенький веб прокси, для веб версии 1С, написал работает, сука но иногда падает, по причине в потоке не валидный utf-8 символ встречается в данных помеченных как бинарные почему, на си повторил, но ставить винду, разбираться-искать-регистрироваться бесплатную визуал студию, проще на 2 питоне повторить, но я уже на си написал

s-warus ()
Ответ на: комментарий от fernandos

>> у питона есть плюс он и в винде работает.

А что не работает?

его просто в два щелчка поставить, без регистрации и смс поставить, в отличие от си, с#, java.

извини это моё отношение к windows+ сожаления о потерянном времени на разборки, что как ставить, разбираться, что нужно покупать, что не нужно, бесконечные регистрации винды, java, visul studio, ползанье по менюшкам отключение включение, странные лицензии IIS.

s-warus ()
Ответ на: комментарий от s-warus

си

Си не ставится, ставиться компилятор.

с#,

И так с виндой поставляется.

java

В сколько кликов ставиться джава?

извини это моё отношение к windows

Если вы думаете, что я хорошо отношусь к винде, то это не так.

fernandos ★★★ ()
Ответ на: комментарий от fernandos

В сколько кликов ставиться джава?

этот сложный квест, я не осилил, звал человека со стороны, нужен был какой то jdk 8, на сайте оракла регистрация, и тд, и тп.

Я больше ценю своё время. Мне проще с кодом помочь, преписать на v11, чем изучать постоянно меняющиеся правила, откуда, как почему.

s-warus ()
Ответ на: комментарий от fernandos

Си не ставится, ставиться компилятор.

я идиот, не знаю, для меня арбуз, это арбуз, а то что нужно ставить мякоть я не понимаю.

И так с виндой поставляется.

Моя последняя штатная винда была XP, но вы точно уверены что в чистой винде, имея код C# я смогу собрать программу?

s-warus ()
Ответ на: комментарий от fernandos

а точно, раньше без дотнета проги не ставились, я рад что по умолчанию он идёт, просто для меня фраза, С# и так с виндой поставляется, означает что компилятор присутствует.

Знаю, я отсталый, можно и на linux .exe собирать. Ошибался, думал что под виндой проще.

s-warus ()
Ответ на: комментарий от fernandos

На семнадцатый! (?) год знакомства с PHP я узнал, что false, true и null - полностью регистронезависимые константы, а не просто есть пары синонимов false/FALSE, true/TRUE и null/NULL!

Но зачем?

wandrien ()
Последнее исправление: wandrien (всего исправлений: 1)
Ответ на: комментарий от s-warus

Мне больше C++ Builder нравился, хоть это и был побочный продукт от скрещивания компилятора C++ с библиотекой компонентов от Delphi. На паскале мне неудобно было писать.

До сих пор какие-то куски от библиотеки VCL помню типа основ автоматического позиционирования виджетов относительно сторон окна.

А для любителей Delphi есть же свободный Lazarus.

wandrien ()
Ответ на: комментарий от wandrien

Издержки обратной совместимости, а раньше пых был многократно хуже. Нулл — отдельный тип, экземпляр которого принимает лишь одно значение, определённое регистронезависимым ключевым словом null.

fernandos ★★★ ()
Последнее исправление: fernandos (всего исправлений: 1)

Попробовал для интереса. Субъективно: полезно для разовой проверки старого кода, для CICD применения не вижу, т.к. долгий. Однако работает хорошо на заведомо допущенных ошибках - симуляциях плохого разработчика и ревьюеров =) Спасибо за новость, буду применять дома

minakov ★★★★★ ()