Symfony 8 is here
Engineered for productivity • Released in November 2025
- 2 years of development
- +615 diverse contributors
- +7,300 commits
- Requires PHP 8.4 or higher
Multi-Step Forms
Break complex Symfony forms into guided steps with per-step validation and conditional branching so users only see relevant fields. Based on the same form features and ideas you already know.
New PHP Configuration
Symfony 8 drops XML and fluent PHP config in favor of PHP array shapes. A compact and expressive format with autocomplete and type validation. Not ready for it yet? You can use YAML too.
**Sm…
Symfony 8 is here
Engineered for productivity • Released in November 2025
- 2 years of development
- +615 diverse contributors
- +7,300 commits
- Requires PHP 8.4 or higher
Multi-Step Forms
Break complex Symfony forms into guided steps with per-step validation and conditional branching so users only see relevant fields. Based on the same form features and ideas you already know.
New PHP Configuration
Symfony 8 drops XML and fluent PHP config in favor of PHP array shapes. A compact and expressive format with autocomplete and type validation. Not ready for it yet? You can use YAML too.
Smaller
Symfony 8 source code removes all 7.4 deprecations, trimming 13,202 lines and keeping the codebase lean.
New Attributes
Configure services, check CSRF tokens, map request params and more with native PHP attributes.
More Constraints
Validate charsets, MAC addresses, ISO week numbers, word counts, YAML, slugs, Twig syntax, and video files with built-in constraints.
Invokable Commands and Input Attributes
Write commands as invokable classes. Skip the boilerplate class extending. Use PHP attributes for arguments, options, and interactive prompts. Less code, better autocomplete.
Better exceptions
Terminal exceptions render as plain text with readable stack traces you can scan and copy without HTML noise.
Security Explained
Security voters can now explain their decisions. Debug authorization issues directly in the profiler or logs instead of guessing.
Compress Assets
Pre-compress assets with Zstandard, Brotli, or Gzip at build time and serve the smallest variant without runtime CPU cost.
Twig Extension Attributes
Define Twig functions and filters with attributes. No base class extending. Lazy-loaded by default for better performance.
New components
- TypeInfo: extracts PHP type information from properties/methods/functions.
- JsonPath: query and extract data from JSON using expressions.
- ObjectMapper: avoid repetitive mapping code between objects.
- JsonStreamer: a high-performance, low-memory JSON encoder/decoder.
Stateless CSRF
CSRF protection without sessions. Works with HTTP caching, perfect for stateless APIs and cached pages.
Better Routing
Define explicit mappings between route params and controller arguments for more precise conversion.
Single-File Apps
Build entire apps in a single file. Perfect for workers, CLI tools, microservices, and simple APIs. All the power, zero scaffolding.
Signed Messages
Add cryptographically secure signatures to Messenger payloads. Tamper-proof message queues out of the box.
Documentation
Read the Symfony 8.0 docs for details on new features and the main changes.
Notes:
- Development and performance stats are calculated comparing Symfony 7.0 to Symfony 7.4.
- Highlighted features were introduced in different Symfony 7.x versions and show the differences between Symfony 7.0 and Symfony 8.0.
- Icons from the Tabler Project / MIT Licensed