Forest header image

Symfony Finland
Random things on PHP, Symfony and web development

Symfony2 turns five, Symfony 3.2 continues the momentum

Late in 2015 the Symfony project as a whole celebrated it's tenth anniversary. Another significant milestone is reached in July 2016 as Symfony2, the second major iteration celebrates it's fifth anniversary. Five years is a long time in IT, but even more so in web development.

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

Since 2011 the web developers have gone through a large number of trends and technologies. Some novelties have been the widespread use of Web Fonts, Responsive Web Design (RWD), HTML5 and NoSQL hypes and the rebirth of JavaScript. Today these sound just about as fresh as Web 2.0 sounded in back in 2011. Five years ago it was impossible to predict web development trends of 2016.

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:

  • Dependency Injection: Dependency injection was a novel practise in the PHP world in 2011. It continues to be a valid pattern in PHP and increasingly used in other popular languages such as JavaScript, with the Angular 2 front end framework having DI as a key feature. A timeless concept applicable everywhere.
  • 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:

Written by Jani Tarvainen on Saturday July 23, 2016
Permalink - Tags: symfony, php

« Httpoxy vulnerability hits PHP installs using FastCGI with PHP-FPM, HHVM - What is TypeScript and why should I care? »