Symfony 8.1.11 только что вышел.

Прочтите  Руководство по обновлению Symfony , чтобы узнать больше об обновлении Symfony. и используйте  отчеты об обновлении SymfonyInsight , чтобы обнаружить код, который вы будете использовать. нужно изменить в вашем проекте.

 Совет 

Хотите получать уведомления о выходе новой версии Symfony? Или когда версия больше не поддерживается? Или только тогда, когда проблема с безопасностью устранена? Рассмотрите  подписку на уведомления Symfony Roadmap .

 Список изменений начиная с Symfony 8.1.10 

AssetMapper

  • ошибка  #67802 [AssetMapper] Исправлено разрешение относительных путей в загруженных пакетах (@nicolas-grekas)
  • ошибка  #67750 [AssetMapper] Декодируйте версию импорта jsDelivr перед ее разрешением (@mathieudz)
  • ошибка  #67621 [AssetMapper] Исправление  importmap:remove удаление файлов локальных записей (@nicolas-grekas)

BrowserKit

  • ошибка  #67685 [BrowserKit] Сопоставление файлов cookie по эквивалентным адресам IPv6 (@X-Coder264)
  • ошибка  #67684 [BrowserKit] Срок действия файлов cookie, датированных эпохой Unix (@X-Coder264)

 Кэш 

  • ошибка  #67759 [Кэш] Исправление FilesystemTagAwareAdapter::deleteItems(), возвращающего true, когда некоторые элементы не удалось удалить (@nicolas-grekas)
  • ошибка  #67741 [Кэш] Исправлена ​​ошибка Redis deleteItems(), возвращающая true, когда некоторые элементы не удалось удалить (@nicolas-grekas)
  • ошибка  #67736 [Кэш] Исправлена ​​ошибка, при которой функция deleteItems() с поддержкой тегов возвращала false при успешной повторной попытке для каждого элемента (@nicolas-grekas)
  • ошибка  #67720 [Кэш] Не удалось повторить попытку обратных вызовов с досрочным сроком действия (@nicolas-grekas)
  • ошибка  #67703 [Кэш] Учитывайте флаг $save, установленный обратным вызовом в EarlyExpirationHandler (@BenMacha)
  • ошибка  #67714 [Кэш] Сохранение нулевых результатов синхронного раннего перерасчета (@nicolas-grekas)
  • ошибка  #67681 [Кэш] Добавлена ​​поддержка реле 0.61 (@nicolas-grekas)
  • второстепенный  #67744 [Кэш] Отметить параметры подключения как #[\SensitiveParameter] (@nicolas-grekas)

 Конфигурация 

  • безопасность  #ghsa-5jff-8h8q-r5qx [Config] Не проверять XML-документы при анализе (@nicolas-grekas)

 Консоль 

  • ошибка  #67832 [Консоль] Исправлено ProgressBar::iterate(), сохраняющее максимум предыдущей итерации для несчетной (@nicolas-grekas)
  • ошибка  #67831 [Консоль] Исправлен процент ProgressBar после завершения() на недекорированном выводе без максимального значения (@nicolas-grekas)
  • ошибка  #67830 [Консоль] Исправление ProgressBar::finish() с пониженным максимумом и перезапуск готового бара без максимума (@jack-worman)
  • ошибка  #67823 [Консоль] Исправлены кадры ProgressBar на недекорированном выводе при возобновлении, перезапуске или завершении (@jack-worman)
  • ошибка  #67811 [Консоль] Исправление ProgressBar::setMaxSteps(), не обновляющего процент (@nicolas-grekas)
  • ошибка  #67805 [Консоль] Исправлено вычисление ProgressBar::start() процента от предыдущего максимума (@jack-worman)
  • ошибка  #67770 [Консоль] Исправление строк контурного блока, заканчивающихся обратной косой чертой (@nicolas-grekas)
  • ошибка  #67769 [Консоль] Исправлен текст, заканчивающийся обратной косой чертой, позволяющий избежать закрывающего тега, следующего за ним (@nicolas-grekas).
  • ошибка  #67762 [Консоль] Сохраняйте экранированный разделитель тегов с обратной косой чертой при переносе текста (@initd-it)
  • ошибка  #67677 [Консоль] Регистрация локаторов аргументов службы под разрешенными именами команд (@kbond)
  • ошибка  #67634 [Консоль] Исправление setRow(), setColumnMaxWidth() и последовательных интервалов строк в таблице (@nicolas-grekas)
  • ошибка  #67633 [Консоль] Исправление ячеек таблицы, которые охватывают строки, когда они следуют за ячейкой, охватывающей столбцы (@ybai08).

 Внедрение зависимостей 

  • ошибка  #67757 [DependencyInjection] Исправление разрешения #[Target], когда два имени имеют один и тот же псевдоним CamelCase (@nicolas-grekas)

 Файловая система 

  • безопасность  #ghsa-6prc-h956-hxjq [Файловая система] Рассматривать только действительную схему URI как корень пути (@nicolas-grekas)
  • ошибка  #67786 [Файловая система] Исправлена ​​обработка ошибок в методе удаления() (@nicolas-grekas)
  • ошибка  #67778 [Файловая система] Автоматическое резервирование каталогов временного удаления (@X-Coder264)

 Поиск 

  • ошибка  #67785 [Finder] Исправлена ​​ошибка, при которой Glob::toRegex() создавал недопустимое регулярное выражение для выражений в скобках, содержащих косую черту (@0xABCD01).

 Форма 

  • ошибка  #67776 [Форма] Сопоставляет ошибки проверки данных с родственной формой, которая имеет поле (@nicolas-grekas)
  • ошибка  #67772 [Форма] Сохранять ошибки проверки в исходной форме (@X-Coder264)
  • ошибка  #67699 [Форма] Проверьте записи коллекции, которые Keep_as_list не нужно перенумеровывать (@BenMacha)
  • ошибка  #67731 [Форма] Исправлена ​​ошибка, позволяющая разрешить_delete удалять записи коллекции, отправленные как нулевые (@nicolas-grekas)
  • ошибка  #67700 [Форма] Игнорировать записи коллекции с недопустимыми именами, когда разрешено_добавление включено (@BenMacha)
  • ошибка  #67702 [Форма] Исправлена ​​ошибка отправки «0» в несоставную корневую форму (@BenMacha).
  • ошибка  #67713 [Форма] Пропустить неотправленные записи коллекции с помощью delete_empty (@nicolas-grekas)
  • ошибка  #67701 [Форма] Исправлена ​​проверка post_max_size, когда для нее установлено отрицательное значение (@BenMacha)
  • ошибка  #67650 [Форма] Сохранение эпохи Unix при преобразовании строки даты (@ahbaqdadi)
  • минор  #67795 [Форма] Обзор греческих переводов (@sogav21)
  • минор  #67773 [Форма] Обзор хорватских переводов (@HypeMC)
  • минор  #67674 [Форма] Обзор польских переводов (@lukaszkrakowiak)
  • второстепенный  #67660 [Форма] Обзор японских переводов (@OTA-EITA)
  • минор  #67623 [Форма][Валидатор] Обзор словацких (sk) переводов (@tito10047)
  • минор  #67642 [Форма][Валидатор] Просмотр и улучшение китайских (zh_CN) переводов (@siganushka)
  • второстепенный  #67635 [Форма][Валидатор] Просмотрите и исправьте переводы на люксембургский (lb) (@mweimerskirch)
  • второстепенный  #67632 [Форма] Исправлен голландский перевод для валидаторов (@mdalikadar)
  • второстепенный  #67631 [Форма] Исправлен итальянский перевод для валидаторов (@mdalikadar)
  • второстепенный  #67626 [Форма][Безопасность][Валидатор] Просмотр вьетнамских переводов (@HongTin2104)
  • минор  #67622 [Форма][Валидатор] просмотр переводов для украинского языка (Великобритания) (@qconer)
  • минор  #67627 [Форма][Валидатор] Проверка перевода на китайский язык (zh_TW) (@HsukqiLee)
  • минор  #67447 [Форма] Обзор переводов валидатора на турецкий (tr) (@erenbati)
  • минор  #67617 [Форма][Валидатор] Просмотр немецких переводов (@Rommmoa)

HtmlSanitizer

  • безопасность  #ghsa-q8jq-xrf4-v5j8 [HtmlSanitizer] Применить политику URL-адресов к srcset и imagesrcset (@nicolas-grekas)
  • безопасность  #cve-2026-118517 [HtmlSanitizer] Требовать, чтобы специальные схемы и URL-адреса, относящиеся к схеме, содержали непустые полномочия (@nicolas-grekas)
  • безопасность  #ghsa-wm2w-4mgj-vw33 [HtmlSanitizer] Исправлен обход очистки URL-адреса метаобновления (@nicolas-grekas)

HttpClient

  • безопасность  #ghsa-c7hm-wqwp-f9v8 [HttpClient] Закрепите IP-адреса кэшированных хостов в NoPrivateNetworkHttpClient (@nicolas-grekas)
  • безопасность  #ghsa-gq53-v8w2-gjhj [HttpClient] Не отправлять параметры области по умолчанию в другие источники в ScopingHttpClient (@nicolas-grekas)
  • ошибка  #67619 [HttpClient] Позвольте PHP разрушить ответ, оформленный TraceableResponse (@nicolas-grekas)
  • ошибка  #67612 [HttpClient] Исправление AsyncResponse, выдающего исключение LogicException при его отмене во время потоковой передачи (@nicolas-grekas)
  • ошибка  #67610 [HttpClient] Исправление getContent(), возвращающего усеченное тело, когда ответ отменяется во время его чтения (@nicolas-grekas)
  • ошибка  #67599 [HttpClient] Исправлено чтение отслеживаемого CurlResponse как потока после уничтожения его декоратора (@PhilETaylor).
  • ошибка  #67609 [HttpClient] Исправлена ​​ошибка, из-за которой CurlHttpClient записывал тело ответа на стандартный вывод, когда он был отменен во время потока() (@nicolas-grekas)
  • ошибка  #67605 [HttpClient] Исправлена ​​очистка кэша DNS ожидающих запросов при уничтожении отслеживаемого ответа (@nicolas-grekas)

HttpFoundation

  • безопасность  #ghsa-xg2q-4rrq-657q [HttpFoundation] Разделить частные диапазоны, которые можно использовать в качестве доверенных прокси-серверов, из списка запрещенных частных подсетей (@nicolas-grekas)
  • безопасность  #ghsa-xg2q-4rrq-657q [HttpFoundation] Добавьте список частных диапазонов, которые можно использовать в качестве доверенных прокси (@nicolas-grekas)
  • безопасность  #cve-2026-118514 [HttpFoundation] Сопоставление запросов HEAD, когда GET указан в MethodRequestMatcher (@nicolas-grekas)
  • безопасность  #cve-2026-118514 [HttpFoundation] Сопоставление запросов HEAD, когда GET указан в RequestMatcher (@nicolas-grekas)
  • безопасность  #ghsa-5mx8-mwrp-5693 [HttpFoundation] Не позволяйте Request::getBaseUrl() начинаться с хоста, выбранного клиентом (@nicolas-grekas)
  • безопасность  #ghsa-3h27-hjv7-fqjx [HttpFoundation] Не сопоставлять имя сценария в Request::getBaseUrl(), если оно является только началом сегмента пути (@jack-worman)
  • ошибка  #67829 [HttpFoundation] Исправление Request::getBaseUrl() для имени сценария с процентной кодировкой или неправильным регистром после префикса и за псевдонимом (@jack-worman)
  • ошибка  #67826 [HttpFoundation] Не используйте имя сценария в качестве Request::getBaseUrl(), если оно не находится в пути URI (@jack-worman)
  • ошибка  #67804 [HttpFoundation] Не соответствует имени сценария в Request::getBaseUrl(), если оно является только началом сегмента пути (@jack-worman)
  • ошибка  #67814 [HttpFoundation] Исправление UrlHelper для фрагментов за доверенным префиксом X-Forwarded-Prefix и для пустого пути (@nicolas-grekas)
  • ошибка  #67800 [HttpFoundation] Сохранение базового URL-адреса для запросов и ссылок на фрагменты (@ahbaqdadi)
  • второстепенный  #67760 [HttpFoundation][Lock][Semaphore] Не раскрывать DSN в исключении, выдаваемом для неподдерживаемых соединений (@nicolas-grekas)
  • второстепенный  #67746 [HttpFoundation] Пометить DSN и параметры SessionHandlerFactory как #[\SensitiveParameter] (@nicolas-grekas)

HttpKernel

  • безопасность  #ghsa-hwfg-qwvh-2wfx [HttpKernel] Не декодировать полезные данные CSV и YAML, если в AcceptFormat они не перечислены (@nicolas-grekas)
  • безопасность  #ghsa-wg5q-m2ww-f3c9 [HttpKernel] Восстановить контекст маршрутизатора родительского запроса после подзапроса (@nicolas-grekas)
  • ошибка  #67834 [HttpKernel] Принимать только полезные данные формы, JSON и XML в #[MapRequestPayload], если в AcceptFormat не перечислены другие форматы (@nicolas-grekas)
  • ошибка  #67683 [HttpKernel] Вычислить длительность #[Кэша] без перехода на летнее время (@nicolas-grekas)
  • ошибка  #67607 [HttpKernel] Исправлен поиск профилей по коду состояния 0 (@chr-hertel)

JsonPath

  • безопасность  #ghsa-cpww-5vpx-72x7 [JsonPath] Оценивать абсолютные запросы в фильтрах один раз для каждого запроса, а не один раз для каждого узла (@nicolas-grekas)
  • безопасность  #ghsa-cpww-5vpx-72x7 [JsonPath] Анализировать выражения фильтра один раз для каждого запроса, а не один раз для каждого узла (@nicolas-grekas)
  • безопасность  #ghsa-cpww-5vpx-72x7 [JsonPath] Привязка работы регулярного выражения для одного вызова find() (@nicolas-grekas)
  • ошибка  #67601 [JsonPath] Исправление срезов с отрицательным шагом и отклонение недопустимых срезов на объектах (@nicolas-grekas)
  • ошибка  #67595 [JsonPath] Исправление открытых фрагментов в конструкторе путей (@shuvroroy)

 Замок 

  • ошибка  #67748 [Блокировка] Исправлена ​​ошибка, из-за которой DynamoDbStore отображал значения неизвестных параметров вместо их имен (@nicolas-grekas)
  • второстепенный  #67747 [Lock] Отметьте параметры DynamoDbStore как #[\SensitiveParameter] (@nicolas-grekas)
  • второстепенный  #67745 [Lock] Пометить DSN и параметры хранилищ DBAL и MongoDB как #[\SensitiveParameter] (@nicolas-grekas)

 Мессенджер 

  • ошибка  #67799 [Messenger] Исправление бесконечных повторов, когда сериализатор выдает ошибку декодирования (@Ptraaah, @nicolas-grekas)
  • ошибка  #67792 [Messenger] Не использовать повторно сериализованное тело после замены сообщения (@dalerazimov)
  • ошибка  #67767 [Messenger] Исправлен транспорт Redis, выдающий сообщение «Сервер Redis ушел» при сбое подключения (@nicolas-grekas)
  • ошибка  #67753 [Messenger] Рассматривать задания Beanstalkd, не являющиеся конвертами Messenger, как ошибки декодирования (@nicolas-grekas)
  • ошибка  #67719 [Messenger] Отслеживание активности независимо для каждого полученного конверта (@nicolas-grekas)
  • ошибка  #67712 [Messenger] Прекратить поддерживать сообщения, которые слушатель не позволяет обработать работнику (@BenMacha)
  • ошибка  #67724 [Messenger] Исправление декодирования учетных данных Redis DSN и трассировок исключений (@nicolas-grekas)
  • ошибка  #67711 [Messenger] Не отправлять повторно заголовки штампов полученного сообщения AMQP (@BenMacha)
  • ошибка  #67709 [Messenger] Восстановление фильтра ресурсов схемы при сбое настройки транспорта Doctrine (@BenMacha)
  • ошибка  #67710 [Messenger] Не раскрывайте Redis DSN в исключении недопустимого параметра запроса хоста (@BenMacha)
  • ошибка  #67654 [Messenger] Прежде чем подтвердить сообщение, дождитесь завершения всех обработчиков пакетов (@andreybolonin)
  • ошибка  #67655 [Messenger] Повторить сообщения, пакет которых был сброшен во время неудачной отправки (@nicolas-grekas)
  • ошибка  #67651 [Messenger] Разрешить рабочему сбрасывать пакеты, содержащие ошибочное сообщение (@nicolas-grekas)
  • ошибка  #67647 [Messenger] Не скрывать сбои обработчика, когда пакетный обработчик подтверждает одно и то же сообщение (@nicolas-grekas)
  • ошибка  #67643 [Messenger] Сохранять обработанные штампы, когда обработчик пакетов не отвечает (@dalerazimov)
  • второстепенный  #67771 [Messenger] Не раскрывать DSN в исключении, выдаваемом, если ни один транспорт его не поддерживает (@nicolas-grekas)
  • второстепенный  #67763 [Messenger] Рассматривать закодированные конверты, тело или тип которых не является строкой, как ошибки декодирования (@nicolas-grekas)
  • второстепенный  #67766 [Messenger] Игнорировать атрибут «X-Symfony-Messenger» сообщения SQS, если оно не является объектом JSON (@nicolas-grekas)
  • второстепенный  #67764 [Messenger] Рассматривать тело или заголовок, который не является строкой, как ошибку декодирования в SigningSerializer (@nicolas-grekas)
  • второстепенный  #67754 [Messenger] Рассматривать записи потока Redis, не являющиеся конвертами Messenger, как ошибки декодирования (@nicolas-grekas)
  • второстепенный  #67739 [Messenger] Отметить параметры транспорта как #[\SensitiveParameter] (@nicolas-grekas)
  • второстепенный  #67722 [Messenger] Игнорировать идентификаторы, которые не являются целыми числами, при поиске сообщения транспорта Doctrine (@BenMacha)
  • второстепенный  #67657 [Messenger] Освободить обработанные конверты, не дожидаясь сборщика мусора (@nicolas-grekas)

 Уведомить 

  • второстепенный  #67761 [Уведомление][Перевод] Не раскрывать DSN в исключении, выдаваемом при отсутствии пароля (@nicolas-grekas)

ObjectMapper

  • ошибка  #67820 [ObjectMapper] Пропустить целевые свойства только для чтения и асимметричную видимость без средства доступа к свойству (@nicolas-grekas)

PropertyAccess

  • ошибка  #67733 [PropertyAccess] Исправление ошибок типа синтаксического анализа, выдаваемых анонимными классами (@nicolas-grekas)
  • ошибка  #67682 [PropertyAccess] Обработка неинициализированных свойств анонимных классов в PHP 8.6 (@nicolas-grekas)

Информация о свойстве 

  • ошибка  #67788 [PropertyInfo] Не превращайте типы пересечений в имена классов в PhpDocExtractor (@nicolas-grekas)
  • ошибка  #67789 [PropertyInfo] Возвращает значение null для типов докблоков, которые экстракторы не могут разрешить (@nicolas-grekas)

 Ограничитель скорости 

  • ошибка  #67705 [RateLimiter] Проверьте сумму пополнения, фиксированный интервал окна и предел скользящего окна (@BenMacha)
  • ошибка  #67603 [RateLimiter] Применить измененный предел к сохраненным окнам с выравниванием по календарю (@nicolas-grekas)
  • ошибка  #67598 [RateLimiter] Сохранение резервирований по календарю в разные периоды (@shuvroroy)

 Маршрутизация 

  • безопасность  #cve-2026-118516 [Маршрутизация] Запретить совпадение заполнителей хоста с путем в скомпилированных средствах сопоставления (@nicolas-grekas)

 Время выполнения 

  • ошибка  #67679 [Время выполнения] Завершить работу ядра в обратном вызове запроса FrankenPHP (@pokorny344)

 Безопасность 

  • безопасность  #cve-2026-118513 [Безопасность] Разобрать DN на RDN перед извлечением идентификатора пользователя (@nicolas-grekas)
  • безопасность  #ghsa-8f57-m8wj-x65w [Безопасность] Запуск checkPostAuth() для средств проверки пользователей при программном входе в систему (@nicolas-grekas)
  • минор  #67738 [Безопасность] Исправление Voter с анонимными классами и вложенными вызовами support() (@nicolas-grekas)
  • второстепенный  #67707 [Безопасность] Отклонять ссылки для входа с параметром «истек срок действия», выходящим за пределы допустимого диапазона (@BenMacha)
  • второстепенный  #67708 [Безопасность] Игнорировать целевые и ошибочные пути, которые не являются ни путями, ни абсолютными URL-адресами (@BenMacha)
  • второстепенный  #67716 [Безопасность] Отклонять неверные идентификаторы пользователей ссылки для входа (@nicolas-grekas)
  • второстепенный  #67706 [Безопасность] Отклонять файлы cookie «запомнить меня» с неверным сроком действия (@BenMacha)

 Сериализатор 

  • безопасность  #ghsa-hqp2-7rr8-hf26 [Сериализатор] Игнорировать необъявленные пути к свойствам при денормализации (@nicolas-grekas)
  • безопасность  #cve-2026-118515 [Сериализатор] Не создавать UploadedFile и другие файловые объекты из денормализованных данных (@nicolas-grekas)
  • безопасность  #ghsa-pxj9-jh84-vhm5 [Сериализатор] Схема URI данных перед их открытием пишется строчными буквами (@nicolas-grekas)
  • ошибка  #67752 [Сериализатор] Пропускать пустые строки при декодировании документов CSV с несколькими столбцами (@0xABCD01)
  • ошибка  #67665 [Сериализатор] Исправление денормализации URI данных, заканчивающегося косой чертой в файле (@ahmed-bhs)

 Перевод 

  • ошибка  #67669 [Перевод] Не читать ответы провайдера как пути к файлам (@nicolas-grekas)
  • второстепенный  #67625 [Перевод] Рецензия на датский перевод в выпуске № 65554 (@mcardle)

 Туй 

  • ошибка  #67809 [Tui] Исправлен ProgressBarWidget при изменении максимума и отрицательных значениях (@nicolas-grekas)

 Информация о типе 

  • ошибка  #67793 [TypeInfo] Исправлено разрешение объединений и пересечений, которые принимает PHPStan (@paulferrett, @nicolas-grekas)
  • ошибка  #67782 [TypeInfo] Исключить псевдонимы типов, которые невозможно разрешить (@paulferrett)

 Валидатор 

  • безопасность  #ghsa-4qpf-57w4-m3wc [Валидатор] Отклонять частные IP-адреса в режимах no-priv, no-res и only-public (@nicolas-grekas)
  • ошибка  #67787 [Валидатор] Извлекать типы свойств только при применении автоматического сопоставления (@paulferrett)
  • второстепенный  #67644 [Валидатор] Показывать количество слов в сообщениях о количестве слов локалей с одной формой множественного числа (@nicolas-grekas)

WebProfilerBundle

  • ошибка  #67618 [WebProfilerBundle] Сброс обработчика CSP между запросами (@norkunas)
  • ошибка  #67620 [WebProfilerBundle] Сброс расширения Twig профилировщика между запросами (@nicolas-grekas)
  • ошибка  #67606 [WebProfilerBundle] Возвращает 404 при открытии средства просмотра файлов профилировщика без файла (@kevinsleegerslameco, @nicolas-grekas)

 Ямл 

  • безопасность  #ghsa-hwfg-qwvh-2wfx [Yaml] Исправление экспоненциального и квадратичного времени анализа (@nicolas-grekas)
  • безопасность  #ghsa-hwfg-qwvh-2wfx [Yaml] Исправление квадратичного времени синтаксического анализа (@nicolas-grekas)
  • ошибка  #67735 [Yaml] Удалить метку порядка байтов в начале потока (@0xABCD01)

 Другое 

  • ошибка  #67614 Отклонять конечные символы новой строки в резервных версиях Content-Disposition (@ahbaqdadi)
  • минорный перевод  #67675 : проверены предложенные сербские переводы (@Trysha-rbrn)
  • второстепенный  #67676 обзор(перевод): [#64516] проверил и обновил перевод (@mikocevar)
  • второстепенный  #67695 Разрешить symfony/mercure-bundle ^0.5 (@DavidPrevot)
  • минор  #67649 Обзор переводов на эстонский (et) (@erkia)