Drupal 8 – an all-in-one modern web technology

whitehouse.gov, louvre.fr, premier.gov.pl, mg.gov.pl, put.poznan.pl – what do they have in common? They were all created in Drupal CMS!

What is Drupal?

For those who aren’t yet familiar with this technology – Drupal is one of the most frequently used and developed CMS systems under the GPL license (https://www.drupal.org/about/licensing). If Wikipedia is to be trusted (https://en.wikipedia.org/wiki/Drupal), it’s used by over a million Web pages, or about 2% of all websites in the world. Drupal’s universality and capabilities for expansion and growth make it a good backbone for blogs, information portals, educational applications, Internet shops, intranet pages – as well as corporate or government websites.

Drupal 8 – Power in details

Drupal 8 provides almost unlimited possibilities in the production of intra- and Internet applications. Its well-considered solutions are the result of the joint work of hundreds of programmers who took part in the development of CMS: both its engine as well as additional modules. Over the last 14 years, Drupal has continuously been evolving, surprising its audience every time with new ideas.
The latest version provides a functionality package that easily matches what the commercial competition has to offer.

  • It’s not only mobile-friendly: it puts mobile first. All the provided skins are adapted to phones, tablets and stationary computers. The utilization of data, e-mail or phone no. fields allows for a much more efficient management of content on the phone.
  • The native multilingualism of the system allows to add more interface languages to the site.
  • A configurational mechanism based on files simplifies the programmers’ group work on Drupal applications and their later management.
  • Extensive support for new WAI-ARIA accessibility standards (https://en.wikipedia.org/wiki/WAI-ARIA). This required the implementation of many small changes on behalf of the admin panel, from the colour scheme through font styles to using additional jQuery UI libraries.
  • A built-in webservice allows to use Drupal CMS as a base for the data source and a place for collecting information, for example, for mobile applications. Built-in HAL support (http://stateless.co/hal_specification.html), JSON, XML and HTTP authentication contribute to the creation a (very) functional server application.
  • Thanks to the supplied editor – WYSIWYG CKEditor (http://ckeditor.com/) content management is simple and very user-friendly.
  • There are many possibilities to create new skins using the TWIG engine (http://twig.sensiolabs.org/), it’s also much safer than with other CMS systems.
  • The Views module, as an integral part of Drupal 8, is a powerful tool that lets even those unfamiliar with programming create lists, tables, galleries, blocks, reports etc.
  • Using an object-oriented framework allows for meeting the latest PHP standards. Drupal 8 also uses additional libraries such as Composer, PHPUnit, Guzzle, Zend Feed Component, Assetic.

Why is Drupal 8 revolutionary?

The most recent version of Drupal introduced a series of improvements in regard to the previous versions. The main changes pertain to the engine of the system, which relocated most of the configurations from the database to the files, what is more, the code itself was rewritten using Symfony to the object-oriented version. The new CMS uses Symfony components such as TWIG or YAML.
The integration of the features module, which allows for versioning the configuration of a website (configuration, variables, types of data etc.), is a nice gesture towards programmers. An interesting solution is the introduction of a dedicated mechanism of configuration Drupal::config($name) that serves the purpose of setting all configuration values to one place and format.
With every version, the standard was to attach new modules to the core. After many years the time has come for the most frequently used Views (https://www.drupal.org/project/views), an integral part of the system since version 8. The following modules shared a similar story: ckeditor, date, entityreference, entity_translation, i18n, migrate, uuid, features.

Drupal 8 and Symfony

The creators of Drupal 8 decided not to reinvent the wheel and based many of their solutions on the tried-and-tested mechanisms of Symfony2. The TWIG component replaced the previously used PHPTemplate. YAML handled the storage of configuration data. HttpKernel and HttpFoundation allow for creating a great REST server. ClassLoader allows the loading of any Drupal classes or any third-party vendor libraries to save resources. What’s more, the Serializer, Process, DependencyInjection, Routing, EventDispatcher components were used. This smart approach allowed programmers to focus on developing typically Drupal-esque elements, which palpably improved the quality of the application(s).

Drupal and Symfony at Espeo

The experience of our team allows for utilizing all the capabilities of the new CMS in version 8. Our programmers have been working with Drupal for nearly 10 years, and have been using it since version 5. The latest projects confirm the quality of our work (http://www.mielenterveysseura.fi/fi …and others). If you want to learn more, or have a chat about Drupal, get in touch with us!
author: Radosław Ługowicz