This week, the upcoming Symfony 8.1 development activity focused on controllers and attributes. In attributes, we added features like support for "this" variable in IsGranted attribute and support of expressions in MapRequestPayload validation groups. Controllers added features to expose controller metadata throughout the request lifecycle, dispatch events named after controller attributes, and new methods to evaluate expressions or closures in controller attributes.

Symfony development highlights

This week, 90 pull requests were merged (38 in code and 52 in docs) and 65 issues were closed (23 in code and 42 in docs). Excluding merges, 26 authors made 4,857 additions and 1,320 deletions. See details for code and docs.

6.4 changelog:

  • 1d8dfd0: [Mime] update mime types
  • 167bd62: [HttpClient] fix destructor throwing while timeout was handled
  • 1e622b1: [HttpFoundation] reject invalid paths
  • 19c7c38: [DoctrineBridge] respect schema_filter in schema listeners
  • fa5cadf: [WebProfilerBundle] fix hot reload support
  • 580da18: [Serializer] normalize static methods when they have groups
  • be304cf: [String] treat emoji VS16 as wide in width calc
  • 031f479: [FrameworkBundle] fix BrowserKitAssertionsTrait compatibility with HttpBrowser
  • 43b5141: [Mailer] fix Mailjet SMTP relay X-MJ-TemplateErrorReporting header format to MailjetApiTransport
  • 8141d71: [DoctrineBridge] fix compatibility with DBAL 4.4+
  • df1a2fa: [String] fix compatibility with PCRE < 10.40
  • 50714e3: [Intl] update data to ICU 78.2
  • 81dd372: [Messenger] fix AMQP heartbeat reconnection during in-flight message handling
  • c6de7ba: [Messenger] optimize serialized size of ErrorDetailsStamp
  • feb9384: [Messenger, Cache] fix forwarding SSL settings to the redis sentinel
  • 740f268: [Yaml] fix parsing nested mappings in sequences

7.4 changelog:

  • 18b98d5: [HttpKernel] fix handling empty MapUploadedFile arrays
  • 70012e0: [PropertyInfo] fix union with mixed handling
  • ba23f08: [JsonStreamer] fix composite node provider arguments in stream mode
  • 7908392: [FrameworkBundle] fix forward compatibility with JsonStreamer 8.1+
  • 1983220: [FrameworkBundle] fix autoconfiguring controllers using legacy Route annotations as attributes
  • ecc007b: [JsonStreamer] fix DateTime handling in union types

8.1 changelog:

  • facff1c: [Notifier] document Mercure options in README file
  • cdc22f9: [Security] add this to #[IsGranted] subject expression vars when available
  • 386a8cc: allow usage of expressions for defining validation groups in #[MapRequestPayload]
  • c778b8c: [HttpKernel] expose controller metadata throughout the request lifecycle
  • a91c19f: [FrameworkBundle] deprecate container parameters router.request_context.scheme and .host
  • 28d1f36: [FrameworkBundle, Lock] scope semaphore and flock stores by project dir by default
  • 2363764: [HttpKernel] dispatch events named after controller attributes
  • f5a236d: [HttpKernel] add ControllerEvent::evaluate() et al. to help with evaluating expressions or closures in controller attributes
  • 47ed844: [HttpKernel] validate typed request attribute values before calling controllers
  • 7c2dfcb: [Messenger] add idle timeout option to BatchHandlerTrait

Newest issues and pull requests

Symfony Jobs

These are some of the most recent Symfony job offers:

  • Backend Symfony Developer at Licorn Group SA
    Contract / Freelance - €350 – €450 / day
    Full remote
    View details
  • Software Architect for a Symfony project at Califrais
    Full-time - €60,000 – €75,000 / year
    Remote + part-time onsite (Paris, France)
    View details
  • Symfony Developer at Paystone
    Full-time - CA$75,000 – CA$100,000 / year
    Full remote
    View details
  • Symfony Developer at Dutch Volleyball Federation Nevobo
    Full-time - €33,000 – €46,000 / year
    Remote + part-time onsite (Utrecht, Netherlands)
    View details
  • DevOps for a Symfony project at Dayuse
    Full-time - €50,000 – €60,000 / year
    Remote + part-time onsite (Paris, France)
    View details

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

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.

This week, SymfonyCasts published the following updates:

They talked about us

Call to Action

Published in #A week of symfony