Drupal 8 Review: Part-3 (Should I upgrade to Drupal 8?)

Drupal 8 Review: Part-3 (Should I upgrade to Drupal 8?)

In the final installment of this 3-part blog discussing Drupal 8, we review what makes Drupal 8 great, areas where it can improve, and some items to seriously consider when deciding to upgrade to Drupal 8 from Drupal 7. Throughout this entry, we will take a look at a consolidation of our previous notes / blog entries, and provide additional information regarding Drupal 8.

Disclaimer: Since Drupal 8 has gone live, the community is no longer supporting Drupal 6. We highly recommend upgrading to either Drupal 7 or 8 as soon as possible. This represents a minority of the Drupal users, so this blog will be mostly focused on upgrading from Drupal 7 to 8.

What’s Great

If you decide to upgrade to Drupal 8, you’ll instantly see many of the benefits at your finger tips. Drupal 8 is great for Content Managers, Mobility & Responsive Design, and for those firms who want to be on the bleeding edge of CMS Development. Let’s explain:

Many of the features and functionality built into Drupal 8 was built mostly around the content manager, and a bit less around the developer. This was evidenced by Drupal 8’s transition to Object Oriented Programming (OOP) (D8 code looks different from D7’s functions and arrays) and purposefully embedding the CKEditor into the Core. As a content manager or administrator, I can start administrating my site quickly and easily. The backend UI is very different and allows for easy navigation. Building a basic content only site with minimal functionality is a breeze with Drupal 8.

Drupal 8 has responsive and mobile design built into the core. Even Bartik, the default Drupal theme contains elements of responsive design. The administration menu and screens also exhibit responsiveness. You can now manage your Drupal 8 site on your tablet or smartphone. In comparison, there are still a number of Drupal 7 themes that are not 100% responsive themes. Search engines, specifically Google, penalize sites’ SEO rating harshly if there is limited to no responsive design. Therefore, Drupal 8’s out-of-the-box capabilities for responsive design help guarantee your site appears at the top of search engine results.

Drupal 8 is the most advanced version of Drupal to date. While this comes with less module support, it enables developers to be creative and determining their own custom solutions. Drupal 8 still requires a lot of work, but developers can definitely take advantage not only for the possibilities twig offers for theming, but also the back-end OOP support. Drupal 8 is also optimized for PHP 7, decreasing overall performance issues associated with PHP 5.x and improving the stability of the CMS greatly. Drupal 7 still does not support PHP 7 completely, as evidenced by the current thread on the Drupal site: https://www.drupal.org/node/2656548.

What Could Be Improved

Drupal 8 is a living software development project, constantly being updated and maintained. While Drupal 8 brings many benefits to both users / administrators and developers, it lacks functionality with limited module support, lack of themes, and creates some administration and development difficulty through a general lack of Drupal 8 documentation.

As touched on previously in our second blog, we noticed many of the modules for Drupal 8 were still in the process of being developed, i.e. were still only of “Alpha” or “Beta” status. Support for many of the Drupal 7 modules continues, but Drupal 8 still does not have the full support of contributors developing modules. This is partially due to the user base (there are still many more Drupal 7 sites than Drupal 8 sites), and the relatively recent release of Drupal 8.

As of September 2016, there are 12,296 modules built for Drupal 7, with only 2,103 modules built for Drupal 8. Regarding themes, Drupal 7 has 702 themes and theme options available, where as only 124 are available for Drupal 8. Similar to the modules, many of the themes developed for Drupal 8 are in their Alpha or Beta stage, and not yet ready for full-production use. The sites we’ve seen developed by the larger firms using Drupal 8 utilize customizable themes like Bootstrap or are built from the ground-up using twig. Smaller companies and development shops may not have the capacity to support custom front-end development for Drupal.

The documentation across the site is lacking information regarding Drupal 8. We believe this to be caused by the recent Drupal.org site migration and also the relative newness of Drupal 8. While the Acquia library currently has a wealth of information, the open source Drupal.org site does not have a consistent, updated Drupal 8 documentation library.

Since the time of this writing, the Drupal community continues to improve module compatibility with Drupal 8. However, we are still years away from full Drupal 8 adoption. The Drupal community is excellent, and I’m sure the flaws we’ve addressed here are being alleviated and solved by the community already.

If you decide you absolutely need Drupal 8…

We are skipping ahead here, but we wanted to highlight some unique functionality Drupal 8 implemented in the Drupal 8 core. Drupal has made life for Drupal 7 (and 6) users a bit easy if they decide to upgrade to 8. Included within Drupal 8 is the “Migrate” module. As of v8.1.x these are included in the “Experimental” section of the Core modules (see the figure below). While experimental, the community understands many user’s frustrations migrating / updating their sites, and decided to make it easier. However, as of Drupal 8.2, the migration path is still not complete especially for Multi-lingual sites. Migrate at your own risk!

Figure 1: Drupal Migrate Modules

Installing the Migrate, Migrate Drupal, and Migrate Drupal UI will activate the Drupal Upgrade process, whereby you can import an existing Drupal site into a clean install of Drupal 8. It will overwrite anything you have configured currently in Drupal 8. The system will ask you for your database source, source file information, and you are off to the races.

Figure 2: Drupal Upgrade Process Beginning

Should you Upgrade?

As we hinted at earlier, Drupal 8 is excellent if your site is heavily content and theme focused, and less focused on functionality (i.e. ecommerce), then Drupal 8 is probably a great place to start. In fact, I would say skip using Drupal 7 altogether and go right to 8 for content heavy sites. You’ll be happy you did! You’ll be able to stay on top of new themes, updates, and use modules as they go-live. For a smaller firm, personal site, or mid-sized firm with content heavy sites, Drupal 8 is highly recommended. Multi-lingual sites also greatly benefit from the built-in Drupal 8 compatibility with multiple languages. Try it out!

For those sites that require a great deal of security, ecommerce, or have a large user base (i.e. such as those for a portal or collaboration site), we recommend staying with Drupal 7 a bit longer. Many of the modules for Drupal 8 that enable permissions and usability are not yet compatible with Drupal 8. While you can mimic a lot of functionality in modules not yet updated to Drupal 8 by writing your own custom code, its not likely recommended due to time and costs associated with development. Many themes for Drupal 7 are also mobile responsive, so jumping to 8 just to have the “responsive” functionality is not nearly as effective as finding a great responsive Drupal 7 theme.

It is likely Drupal 7 will continue to be supported for several years to come. Depending on your organization’s size, appetite for change, and the functionality your site provides, upgrading to Drupal 8 may be a blessing. Upgrading may also cause more headaches through increased costs and development time attempting to patch together custom modules and functionality not supported by Drupal 8.

I hope you enjoyed our series on the Drupal 8 CMS! Feel free to reach out to us at anytime: www.ascendintegrated.com

Drupal 8 Review: Part-2

Drupal 8 Review: Part-2

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.

Drupal 8 Review: Part-1

Drupal 8 Review: Part-1

Introduction to the Blog Series

I wanted to put together a series of blogs covering Drupal 8, including the installation process (mostly for a local machine), our first impressions, and finally the benefits for organizations to upgrade or to just keep Drupal 8 “on their radar”.

Drupal 8 is Drupal’s long awaited upgrade from the popular Drupal 7. Drupal 8 began development after Drupal 7 was released and subsequently stabilized. The Alpha releases for Drupal 8 began around May 2013. As the core team received feedback, Drupal 8 was re-coded, updated, and released again. After much trial and error and following the Alpha & Beta process, Drupal 8 was officially released November 19, 2015 with the first full-on stable release uploaded to the drupal.org site for download.

So it was released in November, 2015…why are we reviewing it now? As an Acquia partner and longtime promoter of Drupal, we enjoy experimenting and testing new systems and modules. There have been quite a few updates since the initial release, and modules (the life blood of Drupal and extending core functionality) are finally being released for Drupal 8. Many sites are still using Drupal 7, but since its release several months ago, more are beginning to use Drupal 8…err well at least many of the organizations using Drupal 7 are beginning discussions on such topics as “Should we start planning for Drupal 8?”

The other reason we are reviewing Drupal 8 now: I wanted our team to have time to absorb Drupal 8, compare it to Drupal 7, and understand the design decisions of Drupal 8.

This series of blogs to be released over the next week would cover the installation process for Administrators & Developers for testing on their local machines, our first impressions (what we see in Drupal 8) and pros & cons of upgrading to Drupal 8 and subsequent benefits for organizations. We split them into 3 blogs so not to overwhelm the reader, with the first one being the most technical and focusing on the installation of Drupal.

Environment Configuration

Let’s begin our Drupal 8 journey with a review of the installation and underlying tech stack we used for testing Drupal 8. As with Drupal 7, Drupal 8 follows a similar Content Management System (CMS) configuration: Web server + Application Server + Database Server. Figure 1 provides an overview of the current environment I am mimicking on my local machine to host Drupal 8.

Figure 1: Typical Drupal Architecture Using MAMP

The installation I used for this evaluation was pretty straight forward, I used MAMP basic (version 3.5.1) as the core environmental component for hosting Drupal. MAMP provides users the ability to create a localhost, providing the Apache Web Server, PHP, and MySQL stack required to run CMSs such as Drupal / WordPress / Joomla. I used the following configurations on my Mac OSX system:

  • Apache v2.2.29
  • MySQL v5.5.38
  • PHP 7.0.8 (to be fair, Drupal requires PHP 5.5.9, but I wanted to see how it would run on top of PHP 7.x)

You can also host Drupal using the WAMP tool for Windows or LAMP for Linux.

To make life a bit simpler, after starting MAMP on my local machine, we completed the following configurations in order to prevent any hiccups when undertaking our evaluation:

  • Ensured PHP Memory was set to 128MB (sometimes it defaults to 8MB)
  • Create a separate Drupal Database and user for the MySQL Database through PHPMyAdmin
  • Set the Apache Webserver Port to 8888
  • MySQL Port set to 8889
  • Enabled PHP 7 OPCache (you can easily do this in MAMP)

After the environment was configured, we downloaded Drupal 8 (specifically 8.1.8) from the https://www.drupal.org/project/drupal/releases/ site (the tar.gz version as opposed to the .ZIP file). Navigating to the Applications directory in my terminal, I did the following:

  • Copied the tar file to Applications/MAMP/htdocs
  • Unpacked the tar.gz in the Applications/MAMP/htdocs folder using the Mac UNIX command (tar xopf drupal-8.1.8.tar.gz)

Installing Drupal

Now that our environment is completed and we have Drupal unpacked into our webserver folder, we are ready to begin installing Drupal! We go to the following link in the browser (http://localhost:8888/mydrupalfoldername/core/install.php) and execute install.php. Here, we are greeted with a clean install screen. To save time, here’s a summary of my selections:

  • Choose Language: English
  • Choose Profile: Standard
  • Verify Requirements: Ensured OPCache was enabled
  • Setup Database: Entered my Database Credentials
  • Configure Site: “Check for updates automatically” and “Receive Email Notifications” were both checked.

Overall, a cleaner beginning than what I was used to experiencing when installing Drupal 7. These UI updates, along with the cleaner look & feel resonate across Drupal 8, including the installation process, content management, and administration functionalities.

Figure 2: Drupal 8 Installation

After a minute or two, we finished with the installation process are greeted with the new Drupal 8 layout as shown in Figure 3.

Figure 3: Drupal 8 Layout Including Administration Menus 

Conclusion

Not a bad start to Drupal 8! So far we have found that it is easy to install, it follows many of the same patterns for installation as Drupal 7, and this new layout we saw in Figure 2 & 3 is getting us excited. In our next blog, we’ll take you through the features of Drupal 8, and our first impressions of the site overall.