Differences in Symfony 3 vs. Symfony 4 (with Standard Edition and Flex)
In November the Symfony project will launch two versions of the Symfony project. Symfony 3.4 to finalise the 3.x series and Symfony 4.0 to be the first release to use something known as "Symfony Flex" by default, instead of the classic Symfony Full Stack Framework. But what are these releases and what differences are there?
The Symfony project is first and foremost a collection of general purpose components for PHP that do very specifict things. To tie these components into a single, coherent framework the project has also formed a full stack framework, known as Symfony Standard Edition.
Since the transition from Symfony 2.x to 3.x the project has adopted a methology of dropping support for older features with major releases. The first version of a new major release has the exact same feature set as the last minor release of the previous version. In essence Symfony 3.4 has the same features as Symfony 4.0.
The Symfony 4.0 release will also drop deprecated code, thus making it lighter weight than 3.4 is. In addition, any further development will be done in 4.x. So while you can keep running 3.4 for a long time (it's a Long Term Support (LTS) version) - you simply won't get any new features that will be introduced in 4.1, 4.2…
Symfony Flex vs. Standard Edition
The Symfony Flex release is something that has caused some confusion in the developer mindshare. It is a new structure to build complete applications on top of, similar to the Symfony Standard Edition (AKA Full Stack Framework). While it will be the default option for new projects, it is not necessary to adopt it.
Like SE before it, Symfony Flex is just a method of binding together the Symfony Components to form a cohesive structure to build applications on top of. Symfony Flex is a separate project from the components and offers Rapid Application Development (RAD) features. Flex is supported by versions 3.3, 3.4, 4.0 and beyond.
Many developers and organisations value the stability Symfony has shown over the years. This does not change with the availability of Flex. Existing Symfony Standard Edition projects will continue to work with the same exact structure as they have before, and especially the upgrade to Symfony 3.4 will be very straightforward.
Existing applications can also be refactored to use the Symfony Flex application structure and features without a complete rework, as behind the scenes the Bundle extension mechanism will continue to work as before. You can learn how to upgrade a Symfony 3 project to Symfony 4 with Flex when the time is right for your project.