This week, Symfony 6.4.35, 7.4.7, and 8.0.7 maintenance versions were released. In addition, we introduced featured listings for Symfony job postings. Lastly, we published AI skills for Symfony UX.

Symfony development highlights

This week, 103 pull requests were merged (62 in code and 41 in docs) and 84 issues were closed (49 in code and 35 in docs). Excluding merges, 38 authors made additions and deletions. See details for code and docs.

6.4 changelog:

  • fe97232: [DependencyInjection] fix TypeError when using a custom container base class with typed $parameterBag
  • 0668b41: [Dotenv] defer variable and command expansion to account for overrides from subsequent .env files
  • c4be063: [Validator] regex bypass when match is false with too big input
  • e4a06c1: [DebugBundle] gracefully handle the kernel.runtime_mode.web parameter missing
  • 373a04b: [PhpUnitBridge] consider PSR-0/PSR-4 fallback dirs when building paths
  • e21ee8b: [WebProfilerBundle] fix Symfony web debug toolbar not being displayed
  • f13046f: [RateLimiter] prevent negative token from causing integer underflow
  • 7aeb3cb: [Mailer] fix inline attachments with custom Content-ID in Mailjet
  • 7775d2c: [Messenger] flush batch handlers after inactivity timeout when worker is busy
  • 924be26: [HttpKernel] fix int-to-float coercion for JSON #[MapRequestPayload] with pre-parsed array data
  • cc07299: [HttpKernel] fix denormalization format detection for pre-parsed request data
  • 26f66d2: [TwigBridge] fix Bootstrap 4 horizontal layout broken by form errors moved outside label
  • e02494c: [Form] fix duplicate validation errors when ValidatorExtension is instantiated multiple times
  • 489cfb5: [FrameworkBundle] fix stale container after reboot in KernelTestCase
  • 9d1a817: [Mime] use shell_exec() instead of passthru() in FileBinaryMimeTypeGuesser
  • 3a7aa23: [Console] fix OUTPUT_RAW corrupting binary content on Windows
  • 2984a00: [Cache] add timeout and slot eviction to LockRegistry stampede prevention
  • 5a934cb: [UrlSanitizer] add 'sms' to hostless schemes
  • 8ded983: [HttpFoundation] fix session cookie_lifetime not applied in mock session storage
  • 71317fd: [Serializer] fix denormalization of magic __set properties
  • 1cea9f3: [Console] fix ApplicationTester ignoring interactive and verbosity options when SHELL_VERBOSITY is set

7.4 changelog:

  • 3fab323: [JsonStreamer] fix missing generator for shared types in self-referencing objects
  • 051053c: [DependencyInjection] handle Stringable for string-typed arguments in CheckTypeDeclarationsPass
  • 1debe1d: [Notifier] fix SweegoTransport by allowing bool values
  • e738063: [PropertyInfo] fix is/can/has type resolver on method without property in ReflectionExtractor
  • 62de3ad: [TypeInfo] fix resolving class const type
  • 4b32a41: [Serializer] fix nullable array constructor parameter overriding collection value type
  • fd50f20: [TypeInfo] fix StringTypeResolver calling Type::enum() on interfaces extending BackedEnum
  • 54b10bb: [HttpClient] fix CachingHttpClient compatibility with decorator clients on 304 responses
  • 3d0ef7a: [DoctrineBridge] rename _schema_subscriber_check table to schema_subscriber_check_ for Oracle compatibility
  • fb34408: [HttpClient] fix streaming from CachingHttpClient
  • c2f29f0: [Form] fix session data contamination by non-serializable objects in form flow
  • a55cbcc: [Validator] fix when constraint without expression language installed, when using closure expression
  • 8f7776a: [Validator] fix required options check when extending a constraint with a simplified constructor
  • 17b1942: [Config] fix NodeDefinition template to be covariant

8.0 changelog:

  • 41ddb38: [Validator] remove constant existence check in ExpressionSyntaxValidator
  • 6aa6d4c: [FrameworkBundle] remove unused code from messenger routing config related to removed XML configuration

8.1 changelog:

  • fd56140: [FrameworkBundle] improve the output of debug:autowiring to be more visually structured
  • 94cdedc: [Console] replace executeCommand() by runCommand() when testing commands
  • 3a19c07: [Console] sort suggested commands alphabetically
  • 8e449ed: [FrameworkBundle] deprecate terminate_on_cache_hit http_cache option
  • d8f26e6: [Translation] replace deprecated Upload Translations method with Import Translations in Crowdin
  • b565393: [ErrorHandler] allow namespace remapping in DebugClassLoader to relax the "same vendor" constraint
  • c62d19c: [Runtime] add SymfonyRuntime::resolveType() for customizing how types are resolved in extending runtimes
  • 311ec27: [HttpFoundation] deprecate setting public properties of Request and Response objects directly
  • 06b0d18: [Messenger] make $clock nullable in PostgreSqlNotifyOnIdleListener
  • 0abec75: [FrameworkBundle] remove hard-dep of KernelTestCase on ConsoleAssertionsTrait
  • 2ce7786: [FrameworkBundle] fix wiring of debug.console.argument_resolver
  • 37ce612: [HttpClient] default CachingHttpClient's $maxTtl to 86400s to prevent eternal cache items
  • dcc4c1d: [FrameworkBundle, Messenger] deprecate "senders" nesting level in routing config
  • 9f19ebd: [Console] add outline-style block methods to SymfonyStyle
  • 8b00ba7: [TypeInfo] resolve tentative return types
  • ea86ec4: [Uid] add Uuid47Transformer support for UUIDv7/v4 conversion
  • b22b7be: [FrameworkBundle] allow configuring Webhook's header names and signing algo
  • da4be3a: [ObjectMapper] allow class FQDN arrays as TargetClass and SourceClass param

Newest issues and pull requests

Symfony Jobs

These are some of the most recent Symfony job offers:

  • Backend Symfony Developer at Finviu AG
    Contract / Freelance - €35 – €50 / hour
    Full remote
    View details
  • Backend Symfony Developer at DigtAg
    Full-time - €42,000 – €55,000 / year
    Full remote
    View details
  • Lead Symfony Developer at Gravitiq
    Full-time - $3,000 – $5,000 / month
    Full remote
    View details
  • Symfony Developer at Collectmaxx
    Full-time - €4,000 – €6,500 / month
    Remote + part-time onsite (Rotterdam, Netherlands)
    View details
  • Symfony Developer at ongoing.ch
    Full-time - €80,000 – €120,000 / year
    Remote + part-time onsite (Zug, Switzerland)
    View details

You can publish a Symfony job offer for free on symfony.com.

They talked about us

Upcoming Symfony Events

Call to Action

Published in #A week of symfony