TGViewer
Заметки разработчика Заметки разработчика @dev_notes_ru · 458 subscribers
Post #1689 208
Вышла новая версия PHPStan 2.1.38

Этот релиз продолжает курс проекта на постоянное повышение производительности и приносит очередное значительное ускорение анализа.

🔥 Главная новость: еще быстрее!

Разработчикам удалось добиться еще 5–10% прироста скорости работы статического анализатора. Это улучшение — результат масштабной работы по оптимизации, которая ведется уже несколько релизов.

Основные изменения

Исправления ошибок:

✅ Исправлена обработка экранированного символа # в регулярных выражениях в расширенном режиме.
✅ Устранена ошибка в определении типов (type inference) для замыканий (closures), связанная с сокращенными именами функций (Function Normalization and Shortening Rule, FNSR).

Улучшения:

✅ Убрано ограничение на версию PHP для правил, проверяющих атрибут #[\Override].
✅ Улучшен анализ для выражений с New_ при использовании StaticMethodParameterClosureTypeExtension.
✅ Улучшен вывод типов при сравнении результатов двух функций (FuncCall === FuncCall).
✅ Теперь array_merge() не теряет информацию о типах известных ключей (offset-types) массивов.

Оптимизация производительности (основная часть работы):

Большинство изменений в этом выпуске направлены на повышение скорости. Были оптимизированы:

✅ Наследование phpDoc-комментариев (теперь используется рефлексия).
✅ Работа с шаблонными типами (TemplateTypeHelper), постоянными массивами (ConstantArrayType) и пересечениями типов (IntersectionType).
✅ Логика в ImpossibleCheckTypeHelper, CombinationHelper и MutatingScope.
✅ Кэширование результатов для предотвращения повторных вычислений.

Прочие правки:

✅ Исправление сигнатур функций.
✅ Внутренние улучшения кода и тесты.

Скачать обновление и увидеть все изменения можно как обычно на GitHub.

Обновляйтесь и наслаждайтесь еще более быстрым анализом кода! Если вы заметили какие-либо проблемы, сообщайте о них в трекере проекта.

📱 @dev_notes_ru
GitHub Release 2.1.38 · phpstan/phpstan This version brings another 5-10 % faster performance! 🏎️ Improvements 🔧 Remove PHP version constraint from the #[\Override] attribute rules (#4436), thanks @johnbillion! OverridingPropertyRule - ...
  • 👍 2
More from @dev_notes_ru
  1. Apr 27, 2026Уникальный индекс при мягком удалении: решаем проблему дубликатов При использовании мягког…
  2. Apr 23, 2026Статические переменные в PHP: использование static внутри функций По данным исследования E…
  3. Apr 21, 2026Валидация массивов в Laravel без N+1: Form Request как построитель контекста Применение пр…
  4. Apr 13, 2026JSON в браузере: import или fetch — руководство по выбору Спойлер: import из JSON — это не…
  5. Apr 6, 2026Проксирование fetch() в серверном JavaScript Стандарт Fetch не специфицирует проксирование…
  6. Apr 2, 2026Taskfile: Когда пора отказаться от Makefile (а когда — нет) Makefile — инструмент с почти…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →