This week, Symfony 4.4.33 and 5.3.10 maintenance versions were released. Meanwhile, Symfony development activity focused on finishing and polishing many new features for the upcoming Symfony 5.4 and 6.0 versions. Lastly, we announced new speakers for the SymfonyWorld Online 2021 Winter Edition conference (December 9-10, 2021) and some new additions to the Symfony Backers program.

Symfony development highlights

This week, 143 pull requests were merged (126 in code and 17 in docs) and 70 issues were closed (60 in code and 10 in docs). Excluding merges, 74 authors made 8,915 additions and 1,431 deletions. See details for code and docs.

4.4 changelog:

  • 396f1bf: [Dotenv] fix testLoadEnv() to start from a fresh context
  • b3b587c: [VarDumper] fix dumping twig templates found in exceptions
  • e602345: fix deprecations on PHP 8.2
  • 36f8fe5: [Messenger] fix TraceableMessageBus implementation so it can compute caller even when used within a callback
  • 2a98147: [PhpUnitBridge] fix symlink to bridge in docker by making its path relative
  • 1d0102e: [Dotenv] duplicate $_SERVER values in $_ENV if they don't exist
  • 078df14: [Config] fix signature generation with nested attributes on PHP 8.1
  • d146704: [Translation] correctly handle intl domains with TargetOperation
  • 415592a: [HttpKernel] fix ErrorException in CacheWarmerAggregate
  • 27d8daf: [Messenger] use TransportMessageIdStamp in InMemoryTransport allows retrying

5.3 changelog:

  • 006d345: [Messenger] move username/password fix to non-deprecated Connection class
  • 773a05d: [Security] prevent issues with timezones and DST by using only UNIX timestamps
  • 97c32a1: [DependencyInjection] fix autowiring tagged arguments from attributes
  • 68537b2: [FrameworkBundle] fix service definition when local vault is disabled
  • a14ef91: [Lock] fix incorrect return type in PostgreSqlStore
  • 66fcfba: [TwigBundle] fix auto-enabling assets/expression/routing/yaml/workflow extensions
  • e5d6b8d: [Dotenv] do not pass a boolean to the constructor of the Dotenv class
  • 95c0c10: [Cache] allow/provide psr/simple-cache v2
  • 078df14: [Config] fix signature generation with nested attributes on PHP 8.1
  • 4237bc5: [Runtime] consider also $_ENV when resolving APP_RUNTIME and APP_RUNTIME_OPTIONS
  • f7319e6: [FrameworkBundle] trigger deprecations on stderr instead of using trigger_deprecation call
  • a972a6a: [RateLimiter] fix wait duration for fixed window policy
  • 1e5fbfb: [Messenger] decouple DelayStamp from timezone settings

5.4 changelog:

  • 5107582: [Cache] do not replace definition arguments that have not been configured
  • c3e4bf9: [Messenger] autoconfigurable attributes
  • 29f42aa: [Finder] fix .gitignore infinite loop
  • 6386c0c: [FrameworkBundle] add ResponseIsUnprocessable
  • ed3660a: [Validator] retrieve at most two entities in UniqueEntityValidator to check uniqueness
  • 617a612: [DependencyInjection] show class name on DI errors
  • a76d746: [BrowserKit, HttpClient, Routing] support building query strings with stringables
  • 2771d6e: [DependencyInjection] add SubscribedService attribute and deprecate current ServiceSubscriberTrait usage
  • ee6bbb2: [FrameworkBundle] support statusCode default param when loading template directly via route
  • 9f4fc3f: [FrameworkBundle] rename translation:update to translation:extract
  • 4202f2a: [Security] cache voters that will always abstain
  • cab3c11: [Filesystem] add third argument $lockFile to Filesystem::appendToFile()
  • f4d96a6: [Security] implement Access Decission Manager strategies as dedicated classes
  • d8f85fd: [FrameworkBundle, SecurityBundle, TwigBundle] be more precise about the required Composer version
  • 303f0c9: [RateLimiter] add support for long intervals (months and years)
  • 08abf4e: [Messenger] choose the proper array element to decode the message
  • 46cda1e: [WebProfilerBundle] add a preview tab in mailer profiler for HTML email
  • 726d360: [Console] add exact command used to trigger invocation to the completion debug log
  • c04478e: [Security] prevent FormLoginAuthenticator from responding to requests that should be handled by JsonLoginAuthenticator
  • fcfcc32: [SecurityBundle] deprecate not configuring explicitly a provider for custom_authenticators when there is more than one registered provider
  • ff83e85: [DoctrineBridge] allow defining connection as a param in event_subscriber/listener tags
  • 47c41d3: [FrameworkBundle, HttpKernel] add the ability to enable the profiler using a parameter
  • 4d96f84: [Config] add some cache on SelfCheckingResourceChecker
  • a3c6cca: [Console] fix backslash escaping in bash completion
  • 9c44920: [FrameworkBundle] add completion for config:dump-reference
  • 3f0f0ce: [Translation] add completion feature on translation pull and push commands
  • 375a89a: [FrameworkBundle] add completion feature on translation:update command
  • c3522c4: [PasswordHasher] add autocompletion for security commands
  • 12f8fae: [FrameworkBundle] add completion to debug:translation command
  • 9fe0876: [Console] add suggestions for debug commands: firewall, form, messenger, router

6.0 changelog:

  • 44380ad: [Serializer] use hard-coded values as tag names are not configurable anymore
  • 9015fea: [Messenger] add types to private properties
  • 8026b0c: [Mime] add types to private properties

SymfonyCasts Updates

SymfonyCasts is the official way to learn Symfony. Select a track for a guided path through 100+ video tutorial courses about Symfony, PHP and JavaScript.

These were some of the most relevant SymfonyCasts updates of the week:

Newest issues and pull requests

They talked about us

Call to Action

Published in #A week of symfony