13

Which Symfony version does Drupal use for the Symfony components? Is it a goal to support the latest versions of the components or is this simply not possible?

  • 2.x, but it looks like 8.3.x has upgraded to Symfony 3.x. drupal.org/node/2743809 – Kevin Dec 12 '16 at 15:43
  • @Kevin That patch was reverted. There are currently separate issues for Symfony 3.1, and Symfony 3.2. Each has their own challenges because of API breaks. – mpdonadio Dec 12 '16 at 15:53
12

It is more accurate to say that Drupal 8 uses Symfony components, rather than all of Symfony. If you look at 'core/composer.json' you will see all of the individual components that Drupal uses listed out. The precise versions that get installed are listed in the 'composer.lock' file.

Drupal 8.2.x uses the 2.8 versions of these components.

For Drupal 8.3.x, there are issues open for updating to 3.1 and 3.2, but these are still works in progress. (I think there may be a 3.3 issue, but I can't find it).

The goal is to start tracking the 3.x versions, but the conversion has not been straightforward.

| improve this answer | |
  • 2
    One addition: composer.lock is the file that defines which versions that are used exactly. One problem is that using composer-based workflows can easily result in updating such componants, and that can result in problems if it is not a version that has been explicitly tested. @webflo provides a package that does nothing but contain a composer.json that has the exact dependencies that any given core version has: github.com/webflo/drupal-core-strict. If you use that, you can be sure that you never accidently update any of those dependencies. – Berdir Dec 12 '16 at 19:28
  • Thanks @Berdir. The bit about the exact version is important. I was hesitant to mention the lockfile as I find them hard to read, and it isn't always clear upon first glance when a package is there because it is a primary dependency, or there because something else requires it. – mpdonadio Dec 12 '16 at 22:53
  • Is this still the case? I need to write a custom module for a Drupal 8 site and am trying to decide on which Symphony to use. – MadPhysicist Apr 5 '17 at 16:12
  • 1
    @MadPhysicist Drupal 8.3.0 is going to be tagged later today. It looks it will be either 2.8.16 (what is in RC2) or 2.8.18 (what is in HEAD). The plan is to commit 3.2.X (probably 3.2.7, which came out this morning and is currently being tested) to 8.3.X shortly after so that there is enough time to fix any problems that pop up before 8.4.0. The 2.8->3.2 update was not easy, and there is worry that there may be problems that test coverage isn't finding. I don't know if the timing for 3.3 has been discussed yet, since this isn't an official release yet. – mpdonadio Apr 5 '17 at 16:21
  • I see. Aside from the Drupal project, do you know if the rest of the world is pretty much onto Symphony 3? Thanks for the information. – MadPhysicist Apr 5 '17 at 16:31
4

To check this yourself whatever version of Drupal you are using, you can just ask composer:

composer info | grep -E '^symfony'

Or for an individual package:

composer info symfony/yaml
| improve this answer | |
3

As of Drupal 8.4.3 here are the versions of Symfony libraries and other closely related libraries specified in core/composer.json:

"php": ">=5.5.9",
"symfony/class-loader": "~3.2.8",
"symfony/console": "~3.2.8",
"symfony/dependency-injection": "~3.2.8",
"symfony/event-dispatcher": "~3.2.8",
"symfony/http-foundation": "~3.2.8",
"symfony/http-kernel": "~3.2.8",
"symfony/routing": "~3.2.8",
"symfony/serializer": "~3.2.8",
"symfony/translation": "~3.2.8",
"symfony/validator": "~3.2.8",
"symfony/process": "~3.2.8",
"symfony/polyfill-iconv": "^1.0",
"symfony/yaml": "~3.2.8",
"twig/twig": "^1.23.1",
"doctrine/common": "^2.5",
"doctrine/annotations": "^1.2",
"symfony-cmf/routing": "^1.4",
"symfony/psr-http-message-bridge": "^1.0",

These can generally be updated using composer update (full composer info). Symfony 4 came out a few weeks ago and there are also 3.3 versions of libraries that exist. So it seems like Drupal 8 minor releases will lag behind Symfony releases, but not stop moving.

| improve this answer | |

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.