18.01.2022

PHPStan 1.0

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

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

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

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

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

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

Источник.