Should You Migrate from Drupal 7 to 8
On the 18th of November the latest update for Drupal, an open source content management platform, was released.
Along with the release, a number of new mod features, advantages and disadvantages, were announced:
Drupal 8 will officially enter the world of object oriented programming with the introduction of some core Symfony components. Symfony, a PHP framework developed by SensioLabs, enforce the use of the namespaced PHP classes instead of global functions — a development methodology commonly referred to as object oriented programming (OOP). This allows programmers to create dynamic relationships between these objects and adds the advantage of not having to change modules when a new type of object is added. More importantly, when done right this means code that is more maintainable, has fewer bugs, and requires less rework.
The default template engine will migrate to using Twig with Drupal 8. Twig provides a greater separation between logic and display, and marries well with Symfony’s class-based approach to programming. It also helps lower the barrier of entry for front-end themers trying to get into a Drupal project on the ground floor. Gone are the bad old days of embedded PHP logic scattered around numerous template files.
Drupal 8 will support inline content editing by using the Spark project. The Spark project was introduced in Drupal 7 and acted as an “incubator” for Drupal 8, spearheading the advancement of the platform’s authoring experience. With these refinements in place, Drupal is setup to directly compete with players such as Sitecore and CQ5, platforms that are known for their streamlined publishing and editing experiences.
A new toolbar will be introduced in Drupal 8. Also a product of the Spark project, the toolbar will be responsive, extensible and more concise. Top-level items include: Home, Menu, Shortcuts, and Users. For mobile, textual labels will be replaced with visual icons saving screen real estate and providing a cue for usage.
Views will be integrated as one of Drupal’s new core modules. “Views is the #1 most-used contributed module, installed on nearly 70% of all Drupal websites,” explains Dries Buytaert. The module provides a graphical user interface that allows you to organize and show your content any way you could imagine with out a single line of code. After its proven success, views will finally be brought into the Drupal core.
Drupal 8 will be the most accessible version of Drupal to date, specifically benefiting visually impaired users. The new internal method “Announce,” will give module developers the ability to create direct output to screen readers. Another Drupal object called TabbingManager will constrain tabbing to unneeded elements providing a functional workflow for those users.
By default, CKEditor will be available as a replacement for the default Drupal 7 WYSISYG. If you’re unfamiliar with CKEditor it’s an open source application for HMTL text editing that simplifies web content creation.
RESTful web services in Drupal 8 serves as a major sea change for the platform. Drupal content entities can now be interacted with via a REST (representational state transfer) interface allowing for the design of more tightly networked web applications. As the web eco-system becomes more co-dependent, relying on more and more third party integrations, having a standard interface with which to interact with your users and content will be paramount to allow for growth – REST gets this done.
Building a multilingual website gets a lot easier with improvements to language maintenance options, site translations and easier-to-customize settings. This will benefit both end users and developer and reach greater audiences on both sides.
Drupal 8 contains a built-in migration system for importing content into your site. It is designed to port data on server from either Drupal 6 or 7 and is built as a plugin, which allows you to import the data from any external data source if you have your own source plugin.
Drupal also 8 contains a flexible migration module, unlike Drupal 7, which only had a script that would convert a Drupal 6 database into a Drupal 7 site.
Nevertheless, the release of Drupal 8 has no impact on interoperability of websites with Drupal 7. There's no urgent need to migrate a drupal website to Drupal 8, and the Drupal community doesn't plan to drop support for Drupal 7 anytime soon so it will be officially supported for quite some time yet. However, based on what happened to Drupal 6 after Drupal 7 was released, development on Drupal 7 will probably slow down a great deal now that Drupal 8 is out.
image source: josemmismo.wordpress.com
But there are other Pros and Cons points to consider planning the drupal content migration to Drupal 8, such as:
The choice to migrate to Drupal 8 depends on the value that Drupal 8 offers, considering the expenses in terms of development.
Typically, so much time and money have already been invested in developing and customizing Drupal 7 to your needs that a migration to Drupal 8 may require changes to existing themes and code. As Drupal 8 is so different from Drupal 7, the conversion won’t be as simple as migrating from Drupal 6 to Drupal 7. That is why some teams may choose to build a new site with Drupal 8, rather than upgrade..
Also early updates to Drupal 8 are expected to come more quickly than they will for Drupal 7, so Drupal 8 site maintainers should be prepared to factor routine code updates into development cycles.
Finally, Drupal 8 has a different framework than Drupal 7. Experienced Drupal developers will need to adapt to the new architecture, and it may not be as easy to migrate from Drupal 6/7 to Drupal 8 as it was to migrate from 6 to 7. However, the Drupal 8 architecture will seem less alien to non-Drupal developers who work with frameworks like Symfony or PHP.
The Drupal 8 core already includes drupal data migration paths that you can use for your Drupal 6 and Drupal 7 websites. Unfortunately, many modules have not yet been ported to Drupal 8 from 7, so there are fewer options to choose from. Popular modules will either need to be migrated by their existing owners or through community migration efforts sponsored by someone who needs Drupal 8.
Modules in Drupal 8.
A lot of popular Drupal contributed modules, are now part of the Drupal core, enabling many users to begin performing initial evaluations. Many modules and themes were also removed from the Drupal core.
The Migrate API has been ported into the Drupal 8 core. This API is flexible and extensible, and can perform complex migrations of content from WordPress, XML, CSV, and Drupal. The drupal backup and migrate module UI and extras are currently in Migrate Plus. The maintainers of Migrate Plus are focusing on implementing a UI and Drush commands for Drupal 8 migration.
A new module called Migrate Drupal is also in the core and uses the Migrate API to allow upgrade paths from Drupal 6 and 7. New Drupal 8 users can use this module to move their old content into Drupal 8. Migrate Drupal contains a migration path for Drupal 6 to Drupal 8, but doesn’t yet have a complete upgrade path from drupal 7 to drupal 8 migration.
So why and when should you migrate to D8 ? And when should you just keep up with the good old D7 ?
In Archer we have a pack of active and older projects (Automotive applications, Logistics apps, UBI app along with Healthcare websites, Patient tracking apps, EMR software and EHR software) developed via D7 and this question raised for us once release of D8 was announced. For us we solve this dilemma in a following way:
To start with a top level consideration, you can use the following nice decision making chart by SnakeHill.net:
image source: snakehill.net
Analysing our projects and expertise pool we could also add few notes we came up to:
If you have a stable, clean, relatively new live project on D7 that was developed in a “Drupal way”, that works fine, holds the high load and earn money - you should keep up using D7 with all its strength and weaknesses as the migration to D8 may not give you enough value that will cover the efforts spent.
On the other hand if you are planning the serious renovation of the existing D7 website that involves re-design or major features changes - you should definitely consider building the system off the ground using D8. There is a chance this option will take considerably more efforts than just reworking the D7, but taking into account the elegance and power of new D8 this may not even be a case. And in a long term this investment will definitely will bring a lot of opportunities and flexibility.
This said we have decided to run few migrations that will now happen in Q1 2016.
PS. Once decided to migrate, you should also keep in mind that all the differences between D7 and D8 will require even a senior Drupal developer to accommodate. From our experience the best team setup for a new D8 project would be a team of senior D8 developer and mid+ /senior Symphony or plan PHP engineer. Sharing the knowledge will make the adoption period faster and extend the expertise of Symhpony developer to master D8 for more projects in future. If you’d like to hear more on how we run this teamset or just need a hand in migrating D7 to D8 feel free to contact us.