The latest version of Drupal i.e. Drupal 8, has been released on 19th November, 2015. With consistent development efforts spread across five years, this is the longest time taken by Drupal community to release a version, hence a lot has changed in these five years and a lot is expected to change in the Drupal world with this release.
Apart from the numerous features and highlights that have been presented by Drupal 8, one of the most significant change is that Drupal 8 consciously is moving towards standardization. Earlier a PHP developer required significant time to learn the “Drupal way” of leveraging functionality. With introduction of Symfony2 in Drupal 8, the output expected would be much easier and faster. However, the flip side is, existing Drupal developers will have steeper learning curve. With Symfony2 adopted by Drupal 8 more people are likely to use Drupal 8, which over a period of time, is good for the open source community.
To give more perspective to the argument, would like to quote as stated by Dries, “The complexity of custom code that’s used and the non-standard architecture combines to create a barrier to entry for developers new to Drupal (both experienced and novice developers alike).”
Announcement of Symfony2 being a part of Drupal8 was done by Fabien Potencier (founder of Symfony project) himself in his blog post back in 2012. Ever since the realization of the need to move towards standardization, introduction of Symfony components in Drupal 8 has been an appreciable initiative. Some of the Symfony components that are a part of Drupal 8 core are as follows:
- HTTP Kernel and HTTP foundation
- Event Dispatcher
- Class Loader
Integration of symfony2 with Drupal 8 is bound to bring the two communities together and hence create a better ecosystem for both the communities and attract other PHP developers towards Drupal 8.
Some of the significant advantages that Drupal 8 has had with Symfony 2 in the core, have been listed below.
PHP namespaces: PHP developers are not new to the concept of PHP namespaces and now with PHP namespaces being used by Drupal 8 as well, the learning curve for PHP developers to get into Drupal development
is not going to be steep.
- Object oriented design: Almost every PHP library these days follows the Object oriented design principles, now Drupal 8 does the same too as objects are present everywhere in Drupal 8 and Symfony. This has been a vital change for Drupal as this defines the direction of the future developments of the Drupal core.
- Container: Use of dependency injection container in the Drupal 8 core has increased the re-usability of classes and it also enables the developers to modify any part of the Drupal core without significantly impacting the other core components.
With numerous changes being introduced in Drupal 8 it is going to be exciting to see how other technologies, and other projects associate with Drupal, create a better ecosystem of applications.