When I started to work on Symfony 2 many moons ago, I decided to create a set
of decoupled components instead of a monolith framework like symfony 1. This
choice was probably one of the key reasons of the immediate success of Symfony
2. I think using dependency injection from day 1 and creating the first
dependency injection container in PHP also helped a lot in designing standalone
Of course, people don’t want to assemble the components themselves when
starting a new project. To fill the gap, we created the Symfony Standard Edition. A fast way to get
started when creating new projects. An opinionated starting point. “Optimized” for
“traditional” frontend applications for which you need a database, a templating
system, and a way to send emails.
One of the issues with the Symfony Standard Edition is that even if it makes
choices for developers, it comes with either too few or too many dependencies.
It does not “scale” well; it is not easy to remove dependencies, and it is not
that easy to add new ones.
I won’t repeat the many problems with the Standard Edition approach (and other
Symfony distributions), as you can read more on my blog, starting with this
Again, I’ve written a lot about Flex on my blog. If you are not familiar with
Flex, take the time to read my series of posts
Thanks to the new Flex approach, we’ve decided to not provide the Symfony
Standard Edition for Symfony 4.0. But one issue with Flex is that starting
projects is more “complex”. Most projects need many Symfony features. But new
projects now have bare minimum dependencies when created via
composer create-project symfony/skeleton. You need to explicitly add all the
dependencies you want to depend on. Being explicit is great, but UX suffers.
Thanks to the new
feature of Flex and the new
symfony/website-skeleton skeleton, you can now
get the best of both worlds.
Like Silex? Start with
symfony/skeleton. Like the full-stack Symfony
framework better (like what the Standard Edition provides)? Start with
symfony/website-skeleton. Then, be free to add or remove dependencies. Scale
the way you want your project.
Now that Flex is able to scale up and down very easily, I think it’s time to
officially announce that the Symfony Standard Edition is now legacy. It should
not be a problem for new projects as they should be created with Symfony 3.4 or
4.0, for which Flex is supported. Current projects are not affected in any ways.