October 7, 2014

Drupal 8 presents major improvements to the existing Drupal ecosystem. It offers much, including a revamped Entity API that adds tremendous flexibility to content modeling, a core-level translation system for multilingual sites, responsive theming, in-place editing and the configuration management system. But with all of its improvements, Drupal 8 presents some hurdles for agencies like Chapter Three to identify and overcome.

5 Hurdles to Adopting Drupal 8


Hurdles Start” by robert_voors is licensed under CC BY-NC-ND 2.0

Hurdle #1: Cozying up to new content modeling language

Drupal 8’s new Entity system removes content modeling sticking points over the long run by providing the ability to create fully featured custom Entity types. The whole of the Entity API has been re-architected so that all content can be multilingual out of the box. For example, you could easily display each user’s name in a different language without any custom work.

The main hurdle is for content strategists to begin thinking within the new Entity language to utilize its full power. In Drupal 6, once CCK was installed, you could only add new fields to the node system. Then, in Drupal 7, CCK was moved into core and developers began to extend that, putting fields onto things like taxonomy. With Drupal 8 we have to lead by example and encouraged the community to start thinking of how content can fit into the Entities that are provided in core. If you have a piece of content that doesn’t fit, the solution is to create a small module leveraging the Entity API. Once you’ve done that, your entity automatically integrates with everything that Drupal has to offer (Views, configurable fields, view modes, entity reference etc), saving time for developers and themers. The result of making everything an Entity is a cleaner site structure, with better separation.

To overcome this hurdle, familiarize yourself and become comfortable with the new vocabulary of the Entity API (base fields, configurable fields, bundles etc.). When designing an Entity, remember that defining the base fields is a key step. You will need to think about how new fields will get added and what will sit on the configurable layer. Ask yourself questions like how much flexibility do you require and what will need to be specified per Entity type. For example, on a location Entity type, you might choose to have different fields on sub types (bundles) called home or office. Drupal 8 delivers a system for doing this with a new flexibility and out-of-the-box integration. Study up to make the most of your new and improved content modeling experience.

Drupal 8Hurdle #2: Learning Twig, the brand new theme engine

The templating structure and language has changed completely in Drupal 8. There are no more PHP templates and the syntax is no longer PHP. Instead, it uses Twig, a whole new theme engine that themers must learn.

The upside is that Twig is solely designed for templating, unlike PHP. The use of Twig templates like node.html.twig makes it much harder to put programming logic in the template layer, a good thing since that’s not where it belongs. Other advantages are that autoescape is turned on by default so all strings output in the template are automatically escaped, which means that Drupal 8 is more secure. HTML5 is used everywhere and there are up-to-date versions of all javascript libraries like jQuery.

Much accessibility testing on a variety screen readers went into the development of Drupal 8 and there are improvements to features like color contrast and font sizes. There are also a host of responsive improvements. Bartik itself is now responsive, serving as a good example for things like assigning priorities to columns in tables for easier responsive design.

Hurdle #3: Site Builders Must Think About the Content Administrator Experience

With Views now in core, site builders can start building immediately with tools that used to require additional downloads and configuration. Content, including node listings, is presented using Views with a display that is much easier to customize. This means that site builders need to start thinking more about the content administrator experience. They will need to dive deeper into usability puzzles and implement some of the same content organization strategies that were once reserved for the end-user experience.

Improvements to blocks should help with that effort. The new block system is significantly more powerful, offering functionality like the ability to place a block in two spots on the same page and fieldable custom blocks.

Hurdle #4: Developers, Start Training

Developers are the group with biggest hurdles and the most work cut out for them, especially if they do not have PHP experience outside of Drupal. They will have to get used to a whole new style of programming in PHP. Drupal 8 has leveraged the modern Object Oriented Programming (OOP) approach. For example, many common informational hooks are no longer used. Instead, they have changed to use the plugin system.

Plugins are small, interchangeable pieces of functionality that are defined by modules. Developers will need to learn how this new and powerful plugin system works. The plugin system offers several benefits, including reducing the size of module files and encapsulating logic into individual classes. In Drupal 6 and 7, you may have to read through the whole module to understand how it works. Using a block as an example, you had hook_block_list, hook_block_info, etc. In Drupal 8, you can look at a block plugin and know that all of the logic in it concerns how that specific block plugin interacts with the system.

This also means that Drupal 8 is more verbose since modules are more fragmented across many files. Developers will need to get used to having more files open. A well-configured development environment using an IDE like Netbeans, Eclipse or PHPStorm can make this much easier.

Hurdle #5: Overcomming Contrib Module Anxiety

One of the biggest reasons that many people held off upgrading to Drupal 7 is that many modules, including Views, were not available for some time after Drupal 7 was released. This presented a challenge to marketers and salespeople. Now that Views is in Drupal 8 core, this major hurdle has been removed. Drupal 8 is actually the most fully featured core release ever, including WYSIWYG, Entity Reference and most of CTools. Many contributed modules have already begun porting to Drupal 8. Upgrading early is more feasible than ever and doing so will give your website a longer life and enhanced security.

weekly project usage

Credit: @xjmdrupal http://bit.ly/dcwi-d8

The Drupal 8 development team thought long and hard about the upgrade path from earlier versions, understanding that Drupal 6 sites were going to be one of the key targets for Drupal 8 upgrades. It used to be that you would have to update from one major version to the next without skipping a version. That process was not likely to work for many people, so Drupal 8 has ditched the major update path. Instead, the Migrate module is now in core. This means that if you have a 5-year-old Drupal 6 site, you will find major value in upgrading directly to Drupal 8. Many other benefits can justify the cost, including an easier to administer, responsive site.