Top 10 Reasons to Move to Drupal 8: Why Upgrading to D8 Is a Must!
Home

Top 10 Reasons to Move to Drupal 8: Why Upgrading to D8 Is a Must!

Author: Michael Julius | Categories: Drupal

drupal
top drupal 8 features

When Drupal 7 launched seven years ago, users were enthusiastic about all of the improvements that were added to that version. It provided flexible content, image, and an improved database support – just a few of the exciting features to name here, which was released with that version.

Drupal 8 now takes the platform to a whole new level with over 200 new features and improvements! The version uses Symfony 2 – which is essentially the powerhouse for Drupal 8 (D8) backend. This and the robustness of other Drupal 8 features make upgrading one of the first tasks you need to achieve this year.

So, here are the top 10 reasons to move to Drupal 8.

Improved Security

The PHP module made into a contributed module, rather than a core one. The PHP module has been removed from the Drupal core. The enablement of this module caused security and performance issues because it allowed users to execute PHP code on their site. Further, many of the Drupal sites are hosted on shared servers; this makes them vulnerable to attacks by other sites residing on the same server. It’s good that it is now a contributed module.

PHPTemplate Gone, Twig ON!

Twig replaces PHPTemplate as the theme engine. In Drupal 7, sites were prone to database queries being run on a theme template file, which led to security glitches. The use of Twig in Drupal 8, sanitizes most data used in the template files and further separates concerns for content presentation vs. business logic.

Mobile first

D8 focuses on mobile device compliance. This helps development teams to concentrate on business logic, rather than device compatibility. This is one area responsible that caused delayed turnaround time for development before the release of D8. Drupal wanted to get this right. Now, with this feature available, development can be speedily done.

Drupal 8

This also includes the addition of a mobile-friendly toolbar. The admin section’s toolbar on D8 orients itself dynamically to fit the two basic orientations – Portrait and Landscape.

Front-end performance

Another compelling addition to the D8 version is the BigPipe-based lazy loading. This works exactly the way Facebook loads its pages. However, by default, it is turned off; enable it to aid you in major Drupal implementations.

A host of ‘field types’ delight site builders

D8 is set with powerful new fields, such as ‘Entity Reference’ and ‘Date’, along with the commonly-needed simple fields such as ‘Phone’, ‘Email’, and ‘Link’. This helps to provide specific field-related information to be keyed in by the user, invalidating the need to screen content.

Also, Drupal 8 adds the notion of “form modes” to display data contextually for data-entry forms. This facilitates a better way of engaging users with friendlier, relevant information for every screen.

Multilingual first

Drupal 8 auto-detects the language from your browser settings and auto-selects it during the installation process. Furthermore, D8 automatically downloads the latest interface translations from the Drupal official website, enabling you to perform an entire site installation and setup in your native language. This was a manual and cumbersome process in Drupal 7. This feature also works for RTL languages, such as Arabic.

The Translation feature is streamlined into just four modules in D8 – simplifying the translation task as compared to the previous version, D7.

Here is a sneak peek into some of the unique elements of this feature:

  • The Language module is the base module for D8’s underlying language support, which is the core of the powerhouse for other modules.

  • Configuration translation caters to translations of blocks, menus, views, etc.

  • Content translation takes care of translations of nodes, taxonomy terms and translatable comments.

  • The Interface translation caters to the translation of Drupal’s Basic User Interface.

  • Language selection handles the translation of everything else – system configuration settings, site components, and individual field values of content.

Quick edits/ In-place editor

D8 comes with the Quick Edits feature, where the author can view any change in the content on the fly. This feature allows a content author to take care of simple modifications, such as title, description, etc., and render it in real time. This mainly helps kick-in the on-demand publishing or scheduled publishing instances so there is no more annoying wait time to deal with.

A back-end developer’s delight

D8’s backend developer improvements are many and include:

  • API for configuring the system.

  • Built-in web service features.

  • Classification of all entities as ‘Objects’.

  • An improved caching – OOTB.

  • Better integration with third-party services.

Configuration Management System, the YAML way

The YAML (Yet Another Markup Language), a file-based configuration system, is a well-proven approach to segregate the configuration, stored in the database from the file system. The new approach is one of the key optimization steps available with this release.

The configuration API is used to manage all configuration changes (i.e. basic site setup and Drupal-based entities).

Entities

D8 entities are classed as objects, which implement a standard EntityInterface. A quick compare and contrast between Drupal 7 & Drupal 8 entities would appear as below:

<?php

# Drupal 7 code.

$node->title

$node->body[$langcode][1]['value']

with

# D8 code.

$node->get('title')->value

$node->get('body')->value

?>


There are two kinds of entities/ objects in D8. They are “Config entities” and “Content entities”.

D8’s content entities:

  • Include customized fields that are stored in the database tables (by default)

  • Are mostly created on the front-end and includes examples such as: nodes, custom blocks, users, comments, taxonomy terms, menu links, aggregator, feeds/items, etc.

  • Support revision nodes, custom blocks, and the ability to add comments to any content entity

D8’s config entities:

  • Can be deployed on different environments and stored in the configuration system

  • Are mostly created on the back-end and includes examples, such as content types, custom block types, user roles, views, taxonomy vocabularies, menus, image styles, etc.

Web Services

A native REST API is built on Drupal 8, and provided by the RESTful Web Services suite of modules. This allows for fine-grained configuration of the resources that should be available (nodes, taxonomy, users, and so on). The HTTP methods are allowed against those resources (GET, POST, PATCH, DELETE). The API also provisions the selection of specific formats and relevant authentication mechanisms to be used to access those resources.

D8 utilizes a new library named Guzzle with easy syntax that retrieves and posts data to Drupal and communicates with third-party web services, such as Twitter or Github.

Another web service feature in D8 is the ability to add a “REST export” display to any view, such as JSON or XML feeds.

Front-end developer improvements

D8 is infused with a ton of front-end developer improvements for HTML5. This includes newer themes that can be extended as sub-themes, UI elements, feature-rich libraries, accessibility enhancements, performance improvements, and so on.

HTML5 markup has been used to keep abreast with the new era of progressive web applications. HTML5 also offers new form input types, such as date, telephone number, email, and picture, which provide targeted user interfaces on mobile devices.

RIA-aligned new front-end libraries and helpersD8 is bundled with RIA tools for ensuring better mobile & authoring experience such as:

  • Modernizr helps in browser detection of devices that includes support touch and HTML5/CSS3 features.

  • Underscore.js, a lightweight JS helper library.

  • Backbone.js, a model-view-controller JavaScript framework.

Native Schema.Org

D8’s RDF module outputs schema.org markup to ensure meta-data extraction consistency by the best search engines such as Google, Yahoo!, Bing, and the rest. The beta tool for viewing this in action, using the UI ‘RDFUI’, can be found on the official website of Drupal.

Improved accessibility

D8 has further nurtured its accessibility feature by using WAI-ARIA attributes to provide meaning on rich, front-end applications, for its sophisticated in-place editor and responsive toolbar.

New Theme System: D8 uses Twig on similar lines of Symfony-based implementations. Twig’s template engines enable designers to concentrate only on the HTML aspect so that modifications can be done solely in the HTML markup.

Twig uses a syntax/tags such as {{ foo.bar }} for statement. And, for conditional and looping logic it uses {% foobar %} tags.

New UI Elements: D8 introduces the concept of “button types” for a better usability experience. This feature assists website users or administrators to make suitable choices more efficiently.

upgrade to drupal 8

Optimization OOTB

Installer: D8 has the CSS, and JavaScript aggregation turned ‘on’ for a much faster default installation.

Development settings: D8’s sites/example folder holds the file “settings.local.php” file with the performance settings set to ‘off’. The best way to make the most of this is to copy it, rename it as “sites/default/settings.local.php”, and uncomment the following lines in sites/default/settings.php:

<?php

# if (file_exists(__DIR__ . '/settings.local.php')) {

# include __DIR__ . '/settings.local.php';

# }

?>

Your new settings.local.php file points to development.services.yml, that comprises of some default disabled settings w.r.t Twig.

By default, the debug mode and the caching are set to ‘off’. To expedite theme development, turn ‘on’ these defaults. This will help in instantly rendering the changes rather than going the route of clearing cache in the Administration Development Menu for triggering the render.

Take a Tour

Are you aware of the ‘RoboHelp’ contextual help for on-the-go assistance to a particular section of the application? D8’s new tour module is built on similar lines for site builders that guarantee a quicker turn around development time.

Performance via caching is OOTB

Cache tags for entities and configuration are provided for clearing the cache. This promptly invalidates the cache when content/settings are changed. All caching features such as CSS/JS aggregation are turned ‘ON’ out of the box, speeding up the performance of Drupal 8. Entity cache module is also now in the core.

Authoring experience advancements

There are several advancements in this module that include:

  • A responsive toolbar that works well on mobile devices.

  • Well configured CKEditor & a WYSIWYG tool with full-text format integration

  • An in-place editor to expedite edits that allow you to edit nodes, blocks, labels etc.

  • A mobile device preview tool (‘Responsive Preview’ module needs to be enabled).
  • upgrade to drupal 8

  • Significantly improved accessibility like Buttons is contained in “button groups” with labels that are invisible. However, these can be read by screen readers, which can, in turn, provide an amazing, accessible editing experience for website visitors.

  • CKEditor: The new feature in CKEditor provides a cool drag-drop admin interface for adding and removing buttons in the WYSIWYG toolbar, an effective way of managing image upload usability.
top drupal 8 features

Conclusion

Now that you are aware of the top features that await you post the upgrade, how about a swift rollout of D8? With D8, you will get an arsenal of robust entities & performance, simple and exciting authoring experience, and the liquid flow layout to comply with a swipe-able device. After the upgrade, consider Drupal 7 to Drupal 8 ‘module migration’, ‘theme migration’ & ‘content migration’.

Don’t miss to check out my next blog on the actual module upgrade steps. In the blog, I will share the step-wise description to help you to upgrade your module successfully while minimizing the chances for error.