Поддержите проект сделав пожертвование.

PHPStan 2.0

Сегодня была выпущена вторая мажорная версия PHPStan — популярного статического анализатора кода для PHP, который помогает находить ошибки до выполнения, проверяя типы данных и структуру.

Первая версия была выпущена чуть больше трех лет назад, и теперь, с выходом второй мажорной версии, нас ожидают новые возможности и улучшения 🚀

Уровень 10

Ранее последним уровнем быть 9-й который проверял только явное использование типа mixed, но пропускал случаи, когда тип данных не указан вообще. Новый уровень исправляет это, проверяя также неявно типизированные значения.

Новый тип "list"

Для более точной работы с массивами теперь можно указывать новый тип данных — list. Это массив с целочисленными ключами, начиная с 0, без пропусков. Пример:

/** @param list<int> $listOfIntegers */
public function doFoo(array $listOfIntegers): void
{
}

Эффективное использования памяти и улучшенная скорость

Свежая версия теперь использует на 50–70% меньше памяти при анализе крупных проектов, что значительно улучшает производительность, особенно в условиях CI.

Проверка PHPDoc тегов @var

Улучшили проверку типов, указанных в комментариях @var. Это помогает избежать ситуаций, когда тип в комментарии не совпадает с фактическим типом переменной в коде.

Пример:

/** @var string|null $a */
$a = doFoo();

// PHPStan сообщит, что тип string|null не совпадает с типом string в реальной переменной.

Аннотация @phpstan-pure для чистых функций

Для чистых функций теперь доступна аннотация @phpstan-pure. Она указывает, что функция должна всегда возвращать одно и то же значение при одинаковых входных данных и не должна иметь побочных эффектов.

Оптимизация кеширования

В версии 2.0 улучшена работа с кешем — старые элементы теперь удаляются 😊 и, как результат, экономится дисковое пространство!


Заметки о выпуске впечатляют — более 180 изменений! 😲 Так что если вы не фанат Psalm (его конкурента), переходите по ссылке на инструкцию по обновлению для подробностей 😊

0

Вакансии

Спонсоры

Помощь в разработке вашего проекта на Laravel

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

Присоединиться

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

Перейти

Подкасты c зажигательными эпизодами, которые заставят задуматься и приведут к новым перспективам.

Перейти