Исторически сложилось так, что мы всегда старались поддерживать минимальную версию 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
15313
765
Symfony 6.2 - новые возможности
14409
753
Новое в Symfony 6.2: Компонент Clock
14610
730
Новое в Symfony 6.1: Более простое расширение и настройка бандлов
15613
780
Новое в Symfony 6.1: динамический переключатель локали (Locale Switcher)
12751
637
Новое в Symfony 6.1: компонент HtmlSanitizer
13108
655
Внедрение поддержки Docker в Symfony
14322
716
Приложение на Symfony и Twitter Bootsrap 4 [видео]
10500
525