Symfony 5.2.0-BETA3 has just been released. Here is a list of the most important changes:
- bug #38845 [Console] Register signal handling only for commands implemeting SignalableCommandInterface (@lyrixx)
- bug #38751 [Security] Move AbstractListener abstract methods to the new FirewallListenerInterface (@chalasr)
- bug #38713 [DI] Fix Preloader exception when preloading a class with an unknown parent/interface (@rgeraads)
- feature #38664 [RateLimiter] Moved classes implementing LimiterInterface to a new namespace (@Nyholm)
- bug #38647 [HttpClient] relax auth bearer format requirements (@xabbuh)
- bug #38675 [RateLimiter] Rename RateLimiter to RateLimiterFactory (@Nyholm)
- bug #38699 [DependencyInjection] Preload classes with union types correctly (@derrabus)
- feature #38688 [HttpClient] Add a Stopwatch on TraceableHttpClient (@jderusse)
- bug #38669 [Serializer] fix decoding float XML attributes starting with 0 (@Marcin Kruk)
- bug #38680 [PhpUnitBridge] Support new expect methods in test case polyfill (@alcaeus)
- bug #38681 [PHPUnitBridge] Support PHPUnit 8 and PHPUnit 9 in constraint compatibility trait (@alcaeus)
- bug #38686 [TwigBridge] Remove “transchoice” from the code base (@nicolas-grekas)
- bug #38661 [RateLimiter] Fix delete method of the cache storage (@GregOriol, @Nyholm)
- bug #38678 [String] fix before/after[Last]() returning the empty string instead of the original one on non-match (@nicolas-grekas)
- bug #38682 [HttpClient] never trace content of event-stream responses (@nicolas-grekas)
- bug #38679 [PhpUnitBridge] Add missing exporter function for PHPUnit 7 (@alcaeus)
- bug #38674 [RateLimiter] Make sure we actually can use slidin _window and n _limit (@Nyholm)
- bug #38670 [RateLimiter] Be more type safe when fetching from cache (@Nyholm)
- bug #38665 [RateLimiter] Allow configuration value “n _limit” (@Nyholm)
- bug #38659 [String] fix slicing in UnicodeString (@nicolas-grekas)
- bug #38633 [HttpClient] Fix decorating progress info in AsyncResponse (@jderusse)
- feature #38543 [HttpKernel] add kernel.runtim _environment = env(default:kernel.environment:AP _RUNTIM _ENV) parameter (@nicolas-grekas)
- bug #38595 [TwigBridge] do not translate null placeholders or titles (@xabbuh)
- feature #38653 [DoctrineBridge] Enabled to use the UniqueEntity constraint as an attribute (@derrabus)
- bug #38635 [Cache] Use correct expiry in ChainAdapter (@Nyholm)
- bug #38652 [Filesystem] Check if failed unlink was caused by permission denied (@Nyholm)
- bug #38645 [PropertyAccess] forward the caught exception (@xabbuh)
- bug #38644 [FrameworkBundle] remove transport factory service when class does not exist (@xabbuh)
- feature #38426 [HttpClient] Parameterize list of retryable methods (@jderusse)
- feature #38608 [RateLimiter] rename Limit to RateLimit and add RateLimit::getLimit() (@kbond)
- bug #38617 [Form] Add missing invali _message translations (@wouterj)
- bug #38612 [Messenger/Amqp] Allow setting option “login” in DSN (@W0rma)
- bug #38618 [Messenger][Doctrine] Avoid early db access for pgsql detection (@chalasr)
- bug #38623 [HttpFoundation][RateLimiter] fix RequestRateLimiterInterface::reset() (@kbond)
- bug #38604 [DoctrineBridge] indexBy does not refer to attributes, but to column names (@xabbuh)
- bug #38605 [DoctrinBridge] make Uid types stricter (@nicolas-grekas)
- bug #38606 [WebProfilerBundle] Hide debug toolbar in print view (@jt2k)
- bug #38602 [Console] Fix signal management (@chalasr)
- bug #38600 [DoctrineBridge] Convert values to Rfc4122 before inserting them into the database (@Kai)
- feature #38562 [RateLimiter] Added reserve() to LimiterInterface and rename Limiter to RateLimiter (@wouterj)
- feature #38593 [Lock][Semaphore] Add Factory::createFromKey and deprecate lock.store services (@jderusse)
- feature #38587 [HttpClient] added extra.trac _content option to TraceableHttpClient to prevent it from keeping the content in memory (@nicolas-grekas)
- bug #38580 [FrameworkBundle] fix config declaration of htt _cache option (@nicolas-grekas)
- bug #38589 [Console] Don’t register signal handlers if pcntl is disabled (@chalasr)
- bug #38581 [Semaphore] Reset Key lifetime time before we acquire it (@jderusse)
- bug #38582 [DI] Fix Reflection file name with eval()’d code (@maxime-aknin)
- feature #38565 [RateLimiter] Adding SlidingWindow algorithm (@Nyholm)
- feature #38576 Deeprecate lock service (@jderusse)
- bug #38578 Add missing use statement (@jderusse)
- bug #38516 [HttpFoundation] Fix Range Requests (@BattleRattle)
Want to upgrade to this new release? Because Symfony protects backwards-compatibility very closely, this should be quite easy. Use SymfonyInsight upgrade reports to detect the code you will need to change in your project and read our upgrade documentation to learn more.
Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider
Inicia sesión para agregar comentarios
Otros mensajes en este grupo.

SymfonyOnline June 2025 is almost here, starting in almost 2 months on:
June 10-11: Workshop days. It is possible to attend 1 two-day training or 2 one-day trainings. June 12-13: Online confe

The Validator component provides dozens of constraints ready to use in your applications. In Symfony 7.3, we've added two new constraints to the list.
Slug Constraint

SymfonyOnline June 2025 is almost here, starting in almost 2 months on:
June 10-11: Workshop days. It is possible to attend 1 two-day training or 2 one-day trainings. June 12-13: Online confe

Contributed by Jérôme Tamarelle in

This week, we kicked off the New in Symfony 7.3 blog series, highlighting all the exciting new features coming in this release. We also unveiled more details about some of the SymfonyOnline June 2025

SymfonyOnline June 2025 is almost here, starting in almost 2 months on:
June 10-11: Workshop days. It is possible to attend 1 two-day training or 2 one-day trainings. June 12-13: Online confe

Symfony's Messenger component makes it easy to build message-driven applications. However, developers using symfony/amqp-messenger have long faced a limitation: it relies on polling (get()), which can