This changelog references the relevant changes (bug and security fixes) done in 5.4 minor versions.
To get the diff for a specific change, go to https://github.com/symfony/symfony/commit/XXX where XXX is the change hash To get the diff between two versions, go to https://github.com/symfony/symfony/compare/v5.4.0...v5.4.1
-
5.4.0-BETA1 (2021-11-05)
-
feature #43916 [PropertyInfo] Support the list pseudo-type (derrabus)
-
feature #43850 Add completion for DebugConfig name and path arguments (eclairia, Adrien Jourdier)
-
feature #43838 feat: add completion for DebugAutowiring search argument (eclairia, Adrien Jourdier)
-
feature #38464 [Routing] Add support for aliasing routes (Lctrs)
-
feature #43923 [Console] Open CompleteCommand for custom outputs (wouterj)
-
feature #43663 [Messenger] Add command completion for failed messages (scyzoryck)
-
feature #43857 [Framework] Add completion to debug:container (GromNaN)
-
feature #43891 [Messenger] Add completion to command messenger:consume (GromNaN)
-
feature #42471 Add generic types to traversable implementations (derrabus)
-
feature #43898 [Security] Make the abstract Voter class implement CacheableVoterInterface (javiereguiluz)
-
feature #43848 [FrameworkBundle] Add completion for workflow:dump (StaffNowa)
-
feature #43837 [Finder] Add .gitignore nested negated patterns support (julienfalque)
-
feature #43754 Determine attribute or annotation type for directories (cinamo)
-
feature #43846 Add completion for debug:twig (StaffNowa)
-
feature #43138 [FrameworkBundle][HttpKernel] Add the ability to enable the profiler using a parameter (dunglas)
-
feature #40457 [PropertyInfo] Add
PhpStanExtractor
(Korbeil) -
feature #40262 [DoctrineBridge] Param as connection in
*.event_subscriber/listener
tags (wbloszyk) -
feature #43354 [Messenger] allow processing messages in batches (nicolas-grekas)
-
feature #43835 [SecurityBundle] Deprecate not configuring explicitly a provider for custom_authenticators when there is more than one registered provider (lyrixx)
-
feature #43598 [Console] add suggestions for debug commands: firewall, form, messenger, router (IonBazan)
-
feature #41993 [Security] Prevent
FormLoginAuthenticator
from responding to requests that should be handled byJsonLoginAuthenticator
(abunch) -
feature #43751 [WebProfilerBundle] Add a "preview" tab in mailer profiler for HTML email (lyrixx)
-
feature #43644 [FrameworkBundle] Add completion to debug:translation command (alexandre-daubois)
-
feature #43653 [PasswordHasher] Add autocompletion for security commands (noniagriconomie)
-
feature #43676 [FrameworkBundle] Add completion feature on translation:update command (stephenkhoo)
-
feature #43672 [Translation] Add completion feature on translation pull and push commands (welcoMattic)
-
feature #43060 [RateLimiter] Add support for long intervals (months and years) (alexandre-daubois)
-
feature #42177 [Security][SecurityBundle] Implement ADM strategies as dedicated classes (derrabus)
-
feature #43804 [DependencyInjection][FrameworkBundle][SecurityBundle][TwigBundle] Deprecate Composer 1 (derrabus)
-
feature #43796 [Filesystem] Add third argument
$lockFile
toFilesystem::appendToFile()
(fwolfsjaeger) -
feature #42414 [Notifier] Add Expo bridge (zairigimad)
-
feature #43066 [Security] Cache voters that will always abstain (jderusse)
-
feature #43758 [FrameworkBundle] Rename translation:update to translation:extract (welcoMattic)
-
feature #41414 Support
statusCode
default param when loading template directly via route (dayallnash) -
feature #42238 [DependencyInjection] Add
SubscribedService
attribute, deprecate currentServiceSubscriberTrait
usage (kbond) -
feature #38542 [FrameworkBundle][Serializer] Allow serializer default context configuration (soyuka)
-
feature #43755 [Dotenv] Add $overrideExistingVars to bootEnv() and loadEnv() and dotenv_overload to SymfonyRuntime (fancyweb)
-
feature #43671 add ResponseIsUnprocessable (garak)
-
feature #43682 [FrameworkBundle] Add completion for config:dump-reference (StaffNowa)
-
feature #43588 [Messenger] Autoconfigurable attributes (alirezamirsepassi)
-
feature #43593 [Validator] Add CidrValidator to allow validation of CIDR notations (popsorin)
-
feature #43683 [VarDumper] Add completion to server:dump command (alexandre-daubois)
-
feature #43677 [RateLimiter] bug #42194 fix: sliding window policy to use microtime (jlekowski)
-
feature #43679 [VarDumper] Add support for Fiber (lyrixx)
-
feature #43680 Add suggestions for the option 'format' of lints commands: twig, yaml and xliff (makraz)
-
feature #43621 Add completion for cache:pool:clear and cache:pool:delete commands (andyexeter)
-
feature #43639 [Uid] Allow use autocompletion (StaffNowa)
-
feature #43626 [Console] [Framework] Add completion to secrets:set and fix secrets:remove (GromNaN)
-
feature #43640 [Console] Add completion to messenger:setup-transports command (Tayfun74)
-
feature #43615 feat: add completion for CompletionCommand "shell" argument (dkarlovi)
-
feature #43595 [Console]
SymfonyStyle
enhancements (kbond) -
feature #41268 [HttpFoundation] Allow setting session options via DSN (makraz)
-
feature #43596 [Console] Add completion to help & list commands (GromNaN)
-
feature #43576 [Messenger] subtract handling time from sleep time in worker (nicolas-grekas)
-
feature #43386 [DependencyInjection] Extend TaggedIterator and TaggedLocator Attributes with able to specify defaultIndexMethod for #[TaggerIterator] and #[TaggedLocator] (fractalzombie)
-
feature #42251 [Console] Bash completion integration (wouterj)
-
feature #39402 [Notifier] Add push channel to notifier (norkunas)
-
feature #43332 [Lock] Split PdoStore into DoctrineDbalStore (GromNaN)
-
feature #43362 [Cache] Split PdoAdapter into DoctrineDbalAdapter (GromNaN)
-
feature #42580 [Console][FrameworkBundle] Add DotenvDebugCommand (chr-hertel)
-
feature #43411 [HttpFoundation] Deprecate passing null as $requestIp in IpUtils (W0rma)
-
feature #43526 Add a warning in WDT when using symfony/symfony (fabpot)
-
feature #43481 [String] Add
trimSuffix()
andtrimPrefix()
methods (nicolas-grekas) -
feature #43497 [Notifier] [Twilio] Ensure from/sender is valid via regex (OskarStark)
-
feature #43492 Lower log level in case of retry (jderusse)
-
feature #43479 [DependencyInjection] autowire union and intersection types (nicolas-grekas)
-
feature #43134 [Notifier] Add sms77 Notifier Bridge (matthiez)
-
feature #43378 [HttpFoundation] Deprecate upload_progress.* and url_rewriter.tags session options (Matthew Covey)
-
feature #42582 [Security] Add authenticators info to the profiler (chalasr)
-
feature #42723 [Messenger] Log when worker should stop and when
SIGTERM
is received (ruudk) -
feature #40168 [Validator] Added
CssColor
constraint (welcoMattic) -
feature #43328 [MonologBridge] Deprecate the Swiftmailer handler (fabpot)
-
feature #43322 [MonologBridge] Deprecates ResetLoggersWorkerSubscriber (lyrixx)
-
feature #43108 [HttpKernel] Add basic support for language negotiation (GregoireHebert)
-
feature #41265 [Messenger] Add a middleware to log when transaction has been left open (lyrixx)
-
feature #43280 [HttpClient] Add method to set response factory in mock client (greeflas)
-
feature #42610 [Dotenv] Reimplementing symfony/flex' dump-env as a Symfony command (abdielcs, nicolas-grekas)
-
feature #42244 [HttpKernel] Add support for configuring log level, and status code by exception class (lyrixx)
-
feature #43236 [Security] Add alias for FirewallMapInterface to
@security
.firewall.map (lyrixx) -
feature #43150 [Finder] Add recursive .gitignore files support (julienfalque)
-
feature #41608 [Runtime] Possibility to define the env and/or debug key (maxhelias)
-
feature #42257 [Messenger] Allow using user's serializer for message do not fit the expected JSON structure (welcoMattic)
-
feature #43148 [Cache] Throw ValueError in debug mode when serialization fails (nicolas-grekas)
-
feature #43139 [Notifier] Mattermost Notifier option to post in an other channel (nathanaelmartel)
-
feature #42335 [Messenger] Add
WorkerMetadata
toWorker
class. (okwinza) -
feature #42712 [Serializer] Save missing arguments in MissingConstructorArgumentsException (BafS)
-
feature #43004 [Serializer] Throw NotNormalizableValueException when type is not known or not in body in discriminator map (lyrixx)
-
feature #43121 [Notifier] [GoogleChat] remove support for deprecated "threadKey" parameter (IonBazan)
-
feature #42338 [DomCrawler] Added Crawler::innerText() method (Bilge)
-
feature #43095 [Form] Add the EnumType (derrabus)
-
feature #43094 [Console] Add support of RGB functional notation (alexandre-daubois)
-
feature #43098 [Validator] Add error's uid to
Count
andLength
constraints with "exactly" option enabled (VladGapanovich) -
feature #42668 [Yaml] Use more concise float representation in dump (dev97)
-
feature #43017 [HttpFoundation] Map
multipart/form-data
asform
Content-Type (keichinger) -
feature #43015 [DependencyInjection] Allow injecting tagged iterator as service locator arguments (IonBazan)
-
feature #42991 [FrameworkBundle] Add configureContainer(), configureRoutes() and getConfigDir() to MicroKernelTrait (nicolas-grekas)
-
feature #43018 [Mailer] Adding support for TagHeader and MetadataHeader to the Sendgrid API transport (gnito-org)
-
feature #42988 [ErrorHandler] Add helper script to patch type declarations (wouterj)
-
feature #42982 Add Session Token to Amazon Mailer (Jubeki)
-
feature #42959 [DependencyInjection] Make auto-aliases private by default (nicolas-grekas)
-
feature #42957 [RateLimiter][Runtime][Translation] remove
@experimental
flag (nicolas-grekas) -
feature #41163 [Mesenger] Add support for reseting container services between 2 messages (lyrixx)
-
feature #41858 [Translation] Translate translatable parameters (kylekatarnls)
-
feature #42941 Implement Message Stream for Postmark Mailer (driesvints)
-
feature #42532 [DependencyInjection] Sort services in service locator according to priority (BoShurik)
-
feature #42502 [Serializer] Add support for collecting type error during denormalization (lyrixx)
-
feature #40120 [Cache] Add CouchbaseCollectionAdapter compatibility with sdk 3.0.0 (ajcerezo)
-
feature #42965 [Cache] Deprecate support for Doctrine Cache (derrabus)
-
feature #41615 [Serializer] Add option to skip uninitialized typed properties (vuryss)
-
feature #41566 [FrameworkBundle] Introduced new method for getting bundles config path (a-menshchikov)
-
feature #42881 [Console] Add more context when CommandIsSuccessful fails (yoannrenard)
-
feature #42900 [HttpFoundation] Add a flag to hasSession to distinguished session from factory (jderusse)
-
feature #41390 [HttpKernel] Add session cookie handling in cli context (alexander-schranz, Nyholm)
-
feature #42800 Display the roles of the logged-in user in the Web Debug Toolbar (NicoHaase)
-
feature #42872 [Mime] Update mime types (fabpot)
-
feature #42039 [DependencyInjection] Autoconfigurable attributes on methods, properties and parameters (ruudk)
-
feature #42710 [Mailer] Added OhMySMTP Bridge (paul-oms)
-
feature #40987 [Config] Handle ignoreExtraKeys in config builder (HypeMC)
-
feature #42426 [Notifier] Autoconfigure chatter.transport_factory (ismail1432)
-
feature #42748 [Notifier] Add Esendex message ID to SentMessage object (benr77)
-
feature #42526 [FrameworkBundle] Add BrowserKitAssertionsTrait::assertThatForBrowser (koenreiniers)
-
feature #41527 [Ldap] Fixing the behaviour of getting LDAP Attributes (mr-sven)
-
feature #42623 [ErrorHandler] Turn return-type annotations into deprecations by default + add mode to turn them into native types (nicolas-grekas)
-
feature #42696 [Notifier] Mark Transport as final (fabpot)
-
feature #42433 [Notifier] Add more explicit error if a SMSChannel doesn't have a Recipient (ismail1432)
-
feature #42619 [Serializer] Deprecate support for returning empty, iterable, countable, raw object when normalizing (lyrixx)
-
feature #42662 [Mailer] Consume a PSR-14 event dispatcher (derrabus)
-
feature #42625 [DependencyInjection] Add service_closure() to the PHP-DSL (HypeMC)
-
feature #42650 [Security] make TokenInterface::getUser() nullable to tell about unauthenticated tokens (nicolas-grekas)
-
feature #42632 [Console] Deprecate
HelperSet::setCommand()
andgetCommand()
(derrabus) -
feature #41994 [Validator] Add support of nested attributes (alexandre-daubois)
-
feature #42595 Fix incompatibilities with upcoming security 6.0 (wouterj)
-
feature #42578 [Security] Deprecate legacy remember me services (wouterj)
-
feature #42516 [Security] Deprecate built-in authentication entry points (wouterj)
-
feature #42387 [Form] Deprecate calling FormErrorIterator::children() if the current element is not iterable (W0rma)
-
feature #39641 [Yaml] Add --exclude and negatable --parse-tags option to lint:yaml command (christingruber)
-
feature #42510 [Security] Deprecate remaining anonymous checks (wouterj)
-
feature #42423 [Security] Deprecate AnonymousToken, non-UserInterface users, and token credentials (wouterj)
-
feature #41954 [Filesystem] Add the Path class (theofidry)
-
feature #42442 [FrameworkBundle] Deprecate AbstractController::get() and has() (fabpot)
-
feature #42422 Clarify goals of AbstractController (fabpot)
-
feature #42420 [Security] Deprecate legacy signatures (wouterj)
-
feature #41754 [SecurityBundle] Create a smooth upgrade path for security factories (wouterj)
-
feature #42198 [Security] Deprecate
PassportInterface
(chalasr) -
feature #42332 [HttpFoundation] Add
litespeed_finish_request
toResponse
(thomas2411) -
feature #42286 [HttpFoundation] Add
SessionFactoryInterface
(kbond) -
feature #42392 [HttpFoundation] Mark Request::get() internal (ro0NL)
-
feature #39601 [Notifier] add
SentMessageEvent
andFailedMessageEvent
(ismail1432) -
feature #42188 [Notifier] Add FakeChat Logger transport (noniagriconomie)
-
feature #41522 [Notifier] Add TurboSms Bridge (fre5h)
-
feature #42337 [Validator] Remove internal from
ConstraintViolationAssertion
(jordisala1991) -
feature #42123 [Notifier] Add FakeSMS Logger transport (noniagriconomie)
-
feature #42297 [Serializer] Add support for serializing empty array as object (lyrixx)
-
feature #42326 [Security] Deprecate remaining
LogoutHandlerInterface
implementations (chalasr) -
feature #42219 [Mailer] Add support of ping_threshold to SesTransportFactory (Tyraelqp)
-
feature #40052 [ErrorHandler] Add button to copy the path where error is thrown (lmillucci)
-
feature #38495 [Asset] [DX] Option to make asset manifests strict on missing item (GromNaN)
-
feature #39828 [Translation] XliffLintCommand supports Github Actions annotations (YaFou)
-
feature #39826 [TwigBridge] LintCommand supports Github Actions annotations (YaFou)
-
feature #39141 [Notifier] Add Amazon SNS bridge (adrien-chinour)
-
feature #42240 [Serializer] Add support for preserving empty object in object property (lyrixx)
-
feature #42239 [Notifier] Add Yunpian Notifier Bridge (welcoMattic)
-
feature #42195 [WebProfilerBundle] Redesigned the log section (javiereguiluz)
-
feature #42163 [Messenger] [Redis] Prepare turning
delete_after_ack
totrue
in 6.0 (chalasr) -
feature #42180 [Notifier] Add bridge for smsc.ru (kozlice)
-
feature #42137 [Finder] Make Comparator immutable (derrabus)
-
feature #42127 [ExpressionLanguage] Store compiler and evaluator as closures (derrabus)
-
feature #42094 [Notifier] [Slack] Throw error if maximum block limit is reached for slack message options (norkunas)
-
feature #42050 [Security] Deprecate
TokenInterface::isAuthenticated()
(chalasr) -
feature #42090 [Notifier] [Slack] Include additional errors to slack notifier error message (norkunas)
-
feature #41989 [Cache] make
LockRegistry
use semaphores when possible (nicolas-grekas) -
feature #41965 [Security] Deprecate "always authenticate" and "exception on no token" (wouterj)
-
feature #41962 add ability to style doubles and integers independently (1ma)
-
feature #40830 [Serializer] Add support of PHP backed enumerations (alexandre-daubois)
-
feature #40908 [Cache] Deprecate DoctrineProvider (derrabus)
-
feature #41717 Allow TranslatableMessage object in form option 'help' (scuben)
-
feature #41705 [Notifier] add Mailjet SMS bridge (jnadaud)
-
feature #41851 Add TesterTrait::assertCommandIsSuccessful() helper (yoannrenard)
-
feature #39623 [Messenger] Added StopWorkerException (lyrixx)
-
feature #41292 [Workflow] Add support for getting updated context after a transition (lyrixx)
-
feature #41154 [Validator] Add support for
ConstraintViolationList::createFromMessage()
(lyrixx) -
feature #41874 [SecurityBundle] Hide security toolbar if no firewall matched (wouterj)
-
feature #41375 [Notifier] Add MessageMedia Bridge (vuphuong87)
-
feature #41923 [EventDispatcher] Deprecate configuring tags on RegisterListenersPass (derrabus)
-
feature #41802 [Uid] Add NilUlid (fancyweb)
-
feature #40738 [Notifier] Add options to Microsoft Teams notifier (OskarStark)
-
feature #41172 [Notifier] Add Telnyx notifier bridge (StaffNowa)
-
feature #41770 [HttpClient] Add default base_uri to MockHttpClient (nicolas-grekas)
-
feature #41205 [TwigBridge] Add
encore_entry_*_tags()
to UndefinedCallableHandler, as no-op (nicolas-grekas) -
feature #41786 [FrameworkBundle] Add commented base64 version of secrets' keys (nicolas-grekas)
-
feature #41432 [WebProfilerBundle] Improved the light/dark theme switching (javiereguiluz)
-
feature #41540 [VarDumper] Add casters for Symfony UUIDs and ULIDs (fancyweb)
-
feature #41530 [FrameworkBundle] Deprecate the public
profiler
service to private (nicolas-grekas) -
feature #41199 [FrameworkBundle] Deprecate the
AdapterInterface
autowiring alias, useCacheItemPoolInterface
instead (nicolas-grekas) -
feature #41203 [FrameworkBundle] Add autowiring alias for
HttpCache\StoreInterface
(nicolas-grekas)