Symfony
Symfony is the PHP project whose components carry requests, routing, events and the service container in Drupal core; Drupal 11.4 requires Symfony 7.4.
Symfony is a PHP project that offers decoupled libraries, called components, and a full web framework built on them. Drupal does not run on the framework. Core builds on a selection of the components, so Symfony class names appear throughout Drupal code.
How Drupal uses Symfony in Drupal 11
The Symfony site describes its packages as decoupled libraries for PHP applications. Drupal core pulls in the ones it needs through Composer. The composer.json of core 11.4.10 requires, among others, symfony/http-foundation, symfony/http-kernel, symfony/routing, symfony/event-dispatcher, symfony/dependency-injection, symfony/console, symfony/yaml, symfony/mailer and symfony/serializer, each constrained to 7.4, such as ^7.4 or ^7.4.13.
The core source shows how those pieces fit:
- Request handling.
DrupalKernelimplements an interface that extends Symfony'sHttpKernelInterface, and thehttp_kernel.basicservice is Symfony'sHttpKernel, wrapped by Drupal's middleware stack.RequestandResponseobjects come from HttpFoundation. - Routing. Drupal's route provider returns Symfony
RouteCollectionobjects, and its router uses Symfony's matcher interfaces. - Events. The
event_dispatcherservice is Symfony'sEventDispatcher. Core classes such asClientErrorResponseSubscriberimplementEventSubscriberInterfaceand listen toKernelEvents. - Services. Drupal's
ContainerBuilderextends Symfony's. The Drupal.org documentation says the service container is built on the Symfony container, that the usual Symfony container concepts apply, and that Drupal overrides parts of it with its own logic.
This is the base under the dependency injection that modern Drupal code uses. Drupal's own hook system, entities and plugins are not Symfony features.
Versions and support dates
The 11.3.0 release notes (17 December 2025) state that the Symfony components were updated to 7.4.0. On 26 October 2026 symfony.com lists 7.4 as a long-term support (LTS) release from November 2025, with bug fixes until November 2028 and security fixes until November 2029. The same page lists 8.1 as the current stable release, and says Symfony 8.x requires PHP 8.4 or higher. Core 11.4.10 stays on 7.4, so these dates are worth checking again when you plan upgrades.
Example
Take a request for a page. In core 11.4.10, web/index.php loads the Symfony Runtime and returns a closure that builds a DrupalKernel. The kernel's handle() method passes the Symfony Request to the inner HTTP kernel and gets a Response back. Subscribers listening to KernelEvents::RESPONSE can change that response before it is sent. Each of these steps has a Symfony class you can look up in the Symfony docs.
Common mistakes
- Following framework tutorials literally. Guides for bundles or the Symfony framework configuration describe features Drupal core does not use. Use the component documentation instead.
- Reading the docs for the wrong version. symfony.com documents several release lines; pick 7.4 to match core 11.4.10.
- Treating Symfony 7.4 and Drupal as one support cycle. The Symfony end dates above come from symfony.com; look up Drupal core's dates on Drupal.org.
For marketing and content teams
You will rarely touch Symfony directly. It matters when a security update or a core release note mentions a Symfony version bump: that is part of core maintenance, and your developer applies it with Composer.
Sources
Questions about Symfony in Drupal
Cite this definition
"Symfony." DXPR Drupal glossary, https://dxpr.com/hc/documentation/learn-drupal/drupal-glossary/symfony. Last updated أكتوبر 26, 2026.