Main Content

Our Experience Building Production Sites on Drupal 8

The Promet Source team put together a Drupal 8 site for DrupalCamp Cebu. The camp was going to happen sometime before the official release of Drupal 8.0.0, a date that was still unknown to us when we started, so the team had no choice but to start building the site in beta versions then move up to release candidates. The end result was a great learning experience to share at the camp and a lot of fun as well. Everybody wins!

The major deciding factor besides the learning opportunity was the fact that it would be a relatively simple D8 site that was fully functional using only the modules in D8’s core. Quick and easy to deploy, in other words.

Some other useful posts on Drupal 8:


Here is a slideshow from DrupalCamp Cebu 2015, where we reviewed the experience of building the camp's website in Drupal 8:

Some of the highlights of our experience included working with Twig and Configuration Manager.


PHP STANDARDS

Drupal 8 represents a major paradigm shift in the way that Drupal is architected. The adoption of the Symfony2 framework as the basis for Drupal 8 architecture will, among other things, facilitate a more rapid application development process for Drupal core, with less time between major releases than developers have seen in the past.

- Lisa Ridley, Senior Solutions Architect at Promet Source

Drupal 8 adopts the PHP specification called PSR-4. On the whole, Drupal 8 is a progression toward a more modern, object-oriented programming (OOP) initiative. Some of the changes that follow from this shift include the Symfony2 framework, default HTML5 markup and Twig for theming.

ON THEMING

Drupal 8 brings a major reworking of theming in Drupal, the most significant change in a decade. Twig is a powerful tool but this wasn’t really a surprise to the team. There are also changes in the form of flexible markup and new core themes which are responsive. The minimal markup of the Stable theme is also a big change.

We started the project while Drupal 8 was still in beta and there wasn’t a Bootstrap theme available yet. Our custom solution was built using Classy as a sub-theme. A pretty inventive solution but when the clock is your enemy it’s amazing what kind of creative solutions you can find.

We had some issues with this sub-theme. First, the Classy theme doesn’t use javascript so there was no JS injection in the template for beta-14. When we went to implement libraries in beta-16 we weren’t seeing any javascript coming up. Uh-oh. Was this a bug or not? Turns out it was not a bug. Classy was eventually updated to include JS injection on beta-16.

CONFIGURATION MANAGER

A significant change to site building workflow in Drupal 8 is the Configuration Manager module. In Drupal 7, we would use the Features module to group components from modules together in a single feature module. The best case scenario for Features was grouping together functionalities to answer a specific use case. In reality, we were using Features in Drupal 7 to build a complex deployment system to synchronize environments.

In Drupal 8, Configuration Manager synchronizes configuration across environments with the Universally Unique Identifier (UUID). Configuration Manager stores project configuration as YML files to make for easy organization and readability. This helps manage complexity and allows developers to make safe changes away from the live environment.

Keep in mind that Configuration Manager isn’t made to share configuration across several projects. Working with this module in Drupal 8 means that your Drupal site owns a configuration instead of modules.

CONCLUSION:

Even though we were working with Drupal 8 in beta, we had a lot of fun building the DrupalCamp Cebu 2015 site and troubleshooting along the way. We were impressed with how much functionality we were able to get out of D8 core and look forward to applying the lessons to future development work in D8!


Have questions? Want to share your experience building sites with Drupal 8? We'd love to hear from you. Sign up for Promet's newsletter to stay in touch.