Componentized Drupal
Drupal 8 and Symfony2
One of the most widely reported changes to Drupal 8 has been the adoption of several Symfony2 components into Drupal core. So what exactly is Symfony2? Why has Drupal started using it and other third party libraries? And what changes should people expect as they start to build sites and modules based on Drupal 8?
How Did We Get to Symfony2?
Having existed as a project for 11 years — and with a strong CMS basis for much of that time —
Drupal has been primarily focused on serving fully rendered HTML pages to web browsers. Over the past few years, the explosion of web services and mobile usage has led to a need to serve many different types of requests in many different ways, whether partial page requests for parallel processing (client, server, or edge side includes), a JSON response to a web service call, or responding to drush on the command line. Several contributed Drupal modules now exist to support using Drupal like that (http://drupal.org/project/esi or http://drupal.org/project/services), but in all cases they contain a large number of workarounds in order to circumvent the full HTML page rendering that Drupal 7 and previous releases assume.
The Web Services and Context in Core Initiative (WSCCI) began during the Drupal 7 release cycle and became one of several official Drupal 8 initiatives during 2011; its goal was to update Drupal’s core request handling and page serving in order to better meet the various kinds of requests that a Drupal site must now serve.
Nathaniel Catchpole
Nathaniel Catchpole has been using Drupal since version 4.5, and has been a regular contributor to Drupal core since 2006. Along with extensive code profiling, he has contributed over 400 patches to the Drupal 7 release, and also maintains multiple core subsystems and contributed projects. Nathaniel is the branch maintainer for Drupal 8.