Symfony2 turns five, Symfony 3.2 continues the momentum
Within the web development industry there is a continuous battle between stability and innovation. Stability is required to allow the creation of meaningful solutions to real world problems instead of continous churn of changing the ways of working. Innovation is also required to make sure the platform does not go stale.
Symfony2 was a major rewrite that turned the previous monolithic framework into PHP components as well as a framework to tie these into a coherent framework for developers to build their applications on. Since that Symfony3 was released and was more of an evolutionary release.
While new features are now only added to the 3.x series, the last iteration 2.8 is supported through the LTS program until November of 2019. At this point the framework will have been on the market for over eight years. That's a long time.
Symfony2 in hindsight
It would be reasonable to expect that a five year old technology would already be rendered irrelevant. But thanks to the original component based approach, Symfony has being able to evolve and keep up with the times. Looking back at the highlights from the Symfony 2.0 release post, they remain surprisingly relevant today:
- Symfony2 distributions: The Symfony2 project itself did not venture into numerous distributions, but the standard project structure is used by many projects building on the framework, such as Akeneo, API Platform, eZ Platform and Sylius. This allows developers working on Microservice APIs, PIMs, CMSes and eCommerce to share the same conventions between projects.
- Extensions via bundles: Symfony bundles are a structure for extending the Symfony Full Stack Framework (AKA standard distribution). Developers can extend the framework in a standard way with everything from code to configuration to code. Just like individual Symfony Components, bundles can be reused from project to project. Symfony bundles continue to be a relevant extension method.
- Standardising on HTTP: Back in 2011 the concept on standardising HTTP communications in PHP to the protocol was surprisingly novel. It democratized HTTP caching and made it trivial to deploy behind a reverse proxy like Varnish. Today millions of websites rely on the Symfony HttpKernel Component for communications.
In addition to Symfony itself, many other tools like the Laravel framework and CMSes like Drupal 8 now use Symfony for HTTP communications. The introduction HTTP/2 improved the fundamental protocol powering the web, but for developers the interface remains the same, with some extensions like HTTP/2 Server Push.
- Debugging tools: The debugging tools of Symfony still set the gold standard in PHP development. And because «the debug component provides tools to ease debugging PHP code», the debug toolbar is familiar to developers working in a large number of PHP applications. Together with the superb documentation of Symfony, debugging PHP today is a joy compared to 2010. This is only helped by new tools such as Blackfire and Tideways.
- Console tools: In 2011 it was still optional for developers to use the console. Fast forward to today and anyone who's anyone is on the green-on-black CLI, running package managers like Composer and NPM. The Symfony Console Component is also very popular among PHP projects. For developers working with the Symfony framework can create console commands that can be distributed via Bundles (see above).
- Security: The Symfony security component has not proved to be vulnerable and thousands of developers use it daily. With continuous improvements like the Guard Authentication the security capabilities of the framework have grown continuously both more powerful and easier to use.
Compared to 2011 web applications in general have a become much more interesting target for attackers. Web security today catches headlines with branded security issues such Heartbleed, Drupalgeddon and Httpoxy. The biggest information leak to date continues to be the Panama Papers leak which is speculated to have been a result of running unmaintained PHP CMSes.
Symfony 3.2 to come with new features and improvements to existing components
Five years is a significant time for an Open Source web development technology to remain relevant. Company owners have a built-in vested financial investment for the longevity of their business, but low level software libraries and frameworks are more often a true community effort.
Staying relevant requires constant work and evaluation of what can be thrown away. The Symfony 3.0 release deprecated quite a few functionalities developers had been using. This meant that the last Symfony2 release had feature parity with the first Symfony3 release. Symfony 3.1 was released early this summer with new functionalities such as improvements to Caching.
The next major release of Symfony 3.2 is slated for a release the upcoming November. With this release the development team continues delivering both gradual improvements to core components as well as completely new significant features, striking a balance between stability and innovation.
The Symfony blog has released articles with what is coming in the next iteration of Symfony:
- New in Symfony 3.2: Workflow component
- New in Symfony 3.2: HttpFoundation improvements
- New in Symfony 3.2: User value resolver for controllers
- New in Symfony 3.2: Lazy loading of form choices
- New in Symfony 3.2: Better readability for YAML numeric literals
- New in Symfony 3.2: Console Improvements (Part 1)
- New in Symfony 3.2: Console Improvements (Part 2)
- New in Symfony 3.2: Routing Improvements
- New in Symfony 3.2: Tagged Cache
- New in Symfony 3.2: DateInterval form type
- New in Symfony 3.2: Compiler passes improvements
- New in Symfony 3.2: PHP constants in YAML files
- New in Symfony 3.2: File controller helper