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