Drupal 8 Review: Part-2

by | Sep 14, 2016 | Ascend Blog, Project Drupal

This is the second in a series of 3 blogs discussing Drupal 8, including its installation & configuration process, first impressions, and the pros and cons of upgrading to Drupal 8. As a recap, we have just installed Drupal 8 on top of the current local MAMP configuration. Here we explain some of our first impressions looking through the Drupal 8 site on our locally hosted Drupal 8 Core site using MAMP.

Semi-Responsive Menus & Content Management

One of the items we noticed right off-the-bat was the responsive menus. This was an interesting new feature which, when used on a mobile device allows users to easily update and administer their Drupal 8 site on their tablet or smartphone. We’ll chat a bit more later about theming and the built-in responsive Drupal 8 modules. Figures 1 & 2 below show how extending and compressing the screen allow the menu’s size to scale.

Figure 1: Top-Admin Menu

Figure 2: Side Admin Menu

Content Development and CKEditor

Yes, they made Drupal 8 a bit more “Content Manager” focused and less developer-oriented. Including the WYSIWYG Editor, CKEditor as a default text editor is one way to show Drupal’s attempt to become more content manager and editor focused.

Drupal 7 and all previous versions of Drupal required you to install and configure the CKEditor Module in order to enable these abilities to edit pages and documentation. Drupal 8 saves you the time, and provides this functionality up-front as shown in Figure 3.

Figure 3: CKEdtior & Content Management in Drupal 8

Users can also directly access their site assets & files (such as images used for the site) under the new “Files” tab. This is similar functionality already built into WordPress.

Themes

The “Appearance” section of Drupal 8 provides you with the capability to Install & Configure themes. There are currently 702 Themes and Theme Options available for Drupal 7, compared with only 124 options for Drupal 8 with themes ranging from complete 1.0 releases to those still in the Alpha and Beta testing stages. Drupal 8 takes full advantage of HTML 5 in theme development compared with Drupal 7’s wide use of XHTML. Themes in Drupal 8 use the Twig framework for building and developing front-end themes.

Building responsive sites is key to increasing your site’s overall search ability and improving your site’s SEO. Drupal 8 comes out-of-the-box with two modules which help enable responsive sites, “Responsive Image” which provides an image formatter and breakpoint mappings, and “Breakpoint” which helps track of height / width / resolution breakpoints required for a site to scale across multiple screen types (i.e. Mobile).

An interesting note, Drupal 8 has dropped support for IE 6, 7, & 8 with its use of jQuery 2.0, HTML5 & CSS3. The wide use of HTML5, jQuery 2.0, and CSS3 by Drupal 8 has modernized the U.I. of the CMS by leaps and bounds.

Extend (Modules)

The Modules section (now called “Extend” in Drupal 8) features similar functionality to that in Drupal 7. Users can install modules using a URL or uploading the file directly. All modules installed are stored in the “Modules” folder in the Drupal 8 file application. After installing a module, the user can enable and configure the module, or turn it on / off as required. There is also a new Drupal 8 section for “Experimental Modules.” Experimental Modules are included in the build for testing purposes only (they are not fully vetted) for possible integration into Core. It is recommended not to enable these modules on a production site as they may expose security flaws or functionality issues.

While scanning available modules for Drupal 8, we noticed many of the popular modules in Drupal 7 are currently going through a development update in order to be compatible with Drupal 8. As of September 2016, there are approximately 12,296 modules built for Drupal 7. This is compared to only 2,103 modules built for Drupal 8. Many of the Drupal 8 modules are still in the Alpha, Beta or first release phases.

Figure 4: Module Installation & Configuration Screen

Documentation Updates

Much of the Drupal 8 documentation is still in the process of being developed. If you visit the Drupal 8 documentation center here: https://www.drupal.org/docs/8 you’ll find a lot of empty pages. This is in-part due to the Drupal Documentation Migration occurring and the relative “newness” of Drupal 8. A lot of the documentation under Drupal 7 covers sections regarding Drupal 8 (strange this is not all compiled under the /docs/8/ path), but there is some documentation out there:https://www.drupal.org/docs/7/choosing-drupal-version/overview. Acquia has a better documentation library, so I would recommend searching their site first before going to the drupal.org site for Drupal 8 documentation information.

Performance

A lot of performance for Drupal 8 is based around the idea of “caching”. Caching allows Drupal to generate pages or page elements one time, and store these pages / elements in memory so that it can be easily retrieved. Rather than making constant calls to the backend Database, this enables you to have all your elements / pages ready after a user accesses them once.

Varnish continues to be one of the best caching reverse proxies for Drupal 8, caching many of your static assets such as images, JavaScript, CSS, and anonymous user requests.

A new functionality for site caching appeared in Drupal 8, the Cache Context API was introduced to cache individual blocks or pages through configuration rather than coding. This allowed you to cache specific blocks within the page appearing the same for all users. For instance, if you have a block on your screen with a calendar or blog updates, you can cache this for all users.

Despite all its hype, there are some initial benchmarks with Drupal 8 showing it to be a slower solution than 7. Because Drupal 8 was architected to be more Object Oriented (OOP) than Drupal 7, a lot of the PHP functionality is broken out into individual files. This requires Drupal 8 to scan these PHP files to find the functionality it needs to execute. Thank you Jeff Geerling for revealing this information: Jeff Geerling: Yes, Drupal 8 is slower than Drupal 7 – here’s why.

Views

Love it or hate it, Views is now part of the Drupal Core install. Views is a query builder. It allows you to pull certain types of data and present them in a section of your screen through a block or a separate page. Since its continued popularity and use by many contributed modules in Drupal 7, the Views module has been integrated into the Drupal Core code. Overall the Views module acts very similar to Drupal 7’s View add-on. The User Interface allows you to create pages or blocks with specific data displaying in the view. The figure below provides a UI of a sample content-based View I created in Drupal 8.

Figure 5: Views Configuration Page

Popular Modules…Gone?!

Interestingly enough, the Drupal community made an attempt to de-focus Drupal 8 from Blogs, Polls, and PHP Embeds, focusing more on Content Management. The reasons the community left these modules out varies, but on the whole the community decided were not adding anything to the value of Drupal.

Blogs: You can either install the un-supported Blog module into your Drupal 8 instance, or create a new Content Type and include custom fields associated with that type.

Polls: This is now available as a contributed project / module you can install. It does not come with the Core install any longer.
PHP Filter Module: The PHP Filter module allowed you to include PHP snippets in posts. Its no longer a part of Drupal Core, for more reasons than one. But, one of the main issues is that it was a security risk if it was enabled. Providing users the ability to embed code directly into a page.

Conclusion

At this point, we’ve seen both the installation process and our first initial impressions of Drupal 8, including functionality built into the system and functionality no longer apart of the CMS. For the final blog in this series, we’ll review the Pros & Cons of Drupal 8 and provide feedback to help you make an informed decision on upgrading your website to the Drupal 8 CMS.