Исторически сложилось так, что мы всегда старались поддерживать минимальную версию PHP для новой основной версии Symfony (X.0) для всех ее минорных версий (X.Y).
Но недавно мы столкнулись с проблемой предварительной загрузки PHP.
Коротко говоря, до версии PHP 8.1 типы свойств должны быть доступны при предварительной загрузке класса. Это проблема для Symfony, когда свойство ссылается на тип необязательной зависимости.
Мы рассмотрели несколько вариантов решения этой проблемы: запретить предварительную загрузку неавтозагружаемых классов (но чем больше типизированных свойств использует Symfony, тем меньше классов будет предварительно загружено), удалить типы свойств (это не работает для классов не-Symfony, которые все еще могут использовать типы свойств). Но тогда сама предварительная загрузка станет практически бесполезной, начиная с PHP 8.1. Так зачем нам поддерживать сложную логику для обхода этой проблемы в PHP и ограничивать себя в использовании типов свойств только для того, чтобы поддерживать PHP 8.0 в течение следующих 4 лет (Symfony 6.0 поддерживает PHP 8.0+)?
Теперь, когда вы лучше понимаете контекст, мы рассмотрели последний вариант: увеличить минимальное требование к PHP до версии PHP 8.1 в Symfony 6.1. По данным Packagist, более 70% установок фреймворка используют PHP 8.1, и этот показатель быстро растет. Поэтому мы уверены, что подавляющее большинство наших пользователей будут использовать PHP 8.1, когда 6.1 выйдет в конце мая 2022 года. И новая Ubuntu LTS также будет поддерживать PHP 8.1.
Даже несмотря на массовую поддержку сообщества, мы понимаем, что бывают особые ситуации, которые не позволят своевременно обновить некоторые проекты. Поэтому, чтобы смягчить минимальный скачок версии PHP, мы продлеваем поддержку Symfony 6.0 еще на 6 месяцев. Таким образом, окончание срока поддержки Symfony 6.0 и 6.1 произойдет в одно и то же время.
Мы много думали об этом решении в течение последних нескольких недель, и кажется, что это единственный жизнеспособный вариант, который подходит для проекта Symfony. Мы понимаем, что это может быть неудобно для некоторых программистов, и хотим заверить вас, что повышение минимальной версии PHP для незначительной версии Symfony будет рассматриваться только в качестве крайней меры в будущем. Мы задокументировали это изменение, чтобы сделать процесс понятным и прозрачным. Вы можете рассматривать это исключение как эквивалент нарушения обратной совместимости, чтобы исправить проблему безопасности.
Обработка сигналов с помощью Symfony Command
15310
765
Symfony 6.2 - новые возможности
14405
753
Новое в Symfony 6.2: Компонент Clock
14606
730
Новое в Symfony 6.1: Более простое расширение и настройка бандлов
15610
780
Новое в Symfony 6.1: динамический переключатель локали (Locale Switcher)
12747
637
Новое в Symfony 6.1: компонент HtmlSanitizer
13106
655
Внедрение поддержки Docker в Symfony
14320
716
Приложение на Symfony и Twitter Bootsrap 4 [видео]
10498
524