Drupal is a free open source solution, which predetermined its development. Like other similar CMS, it has a developed user community, which creates modules, patches, and thematic assemblies based on the core. Exist thousands of articles describing how secure and flexible Drupal is.
The core of the system itself provides few content management tools. This is not the mistake of the creators, but a conscious decision that emphasizes the flexibility of the system and its focus on experienced developers - or those, who are willing to learn, read forums and watch video manuals. But even in this minimal set of tools, some parts are very useful for the future site - for example, pre-installed tools for organizing user accounts. They help develop large portals with forums and other social ways visitors interact.
Features that Differentiate Drupal 8 from Drupal 7
There we would like to focus on the general differences between Drupal 7 and Drupal 8 since Drupal 8 made a huge step forward with the new core modules and performance features. Let’s overview of the main features.
Drupal 8 vs Drupal 7: Minimum System Requirements
Unlike the previous version, Drupal 8 requires that your server has a minimum of PHP 5.6, and even better 7 and higher, because PHP of these versions works an order of magnitude faster.
Drupal 8 vs Drupal 7: Caching
Drupal’s cache is not stored in one single place but divided into segments. By default, in Drupal, each cache segment is in the database in the form of tables under a specific name. Since everything in Drupal 8 was transferred to the Render API, caching is now implemented directly at the render array level using the #cache key and is divided into three independent types:
tags: these are cache tags, on the basis of which Drupal decides whether updating some cache or not. These are such "dependencies", and if one of them changes, the cache containing this tag (s) is automatically disabled.
contexts: this type of cache allows you to make the cache variable, for different roles, for example. This is a division of the cache into different "options" depending on the context of the content call. Very often based on an HTTP request.
max-age: The simplest type of cache that stores in seconds, how long this cache will live. As soon as time passes - it is disabled. Using this property, you can disable caching in general, and make it eternal.
All three of the above types of caching can work together, they only complement each other, and they can also be in nested elements.
Drupal 7 caching can be implemented through Varnish or Memcache or any other caching reverse proxy server, the main thing is to configure it correctly. In nutshell: Drupal 8 already contains the cache built-in, Drupal 7 cache works using contrib decisions. It’s cool, because Drupal 8 clears cache when something has been changed, in turned Drupal 7 required all caches cleared after any edits. This feature is advantageous for content management. Last but not least: Drupal 8 caches pages for anonymous users by default, Drupal 7 cache is disabled out-of-box. In this fight Drupal 7 vs Drupal 8 - the winner is D8.
Drupal 8 vs Drupal 7: Administration theme
Drupal 7 admin panel
Drupal 8 admin panel
The first difference catching the eye is an interface. Drupal 8 made a big step ahead and contain a modern default admin theme - Bartic. But in general, it keeps the same items as Drupal 7 includes: Drupal menu, Content, Structure, Appearance, Extend (Modules), Configuration, People, Reports. Drupal 8 has a mobile-friendly interface that facilitates using a website on mobile devices. Drupal 7 uses themes and the PHP template when Drupal 8 uses Twig as a theme engine.
Drupal 8 vs Drupal 7: Migration to Drupal 9
Only the latest release of Drupal 8 is ready for the migration. Site owners, who keep their sites up-to-date and regularly check and remove deprecated code are confident with the migration. Unfortunately, Drupal 7 site owners, currently cannot easily migrate from Drupal 7 to Drupal 9. It’s quite harder rather than with Drupal 8. To start with, there needs to migrate site and modules to Drupal 8, and afterward proceed with Drupal 9 migration.
Drupal 8 vs Drupal 7: Multilingual
To make the site more user-friendly, the task sometimes arises of adding to the site several languages in which the content will be presented. You can of course create articles just with different contents, but what about the rest of the site like menus, blocks, etc.? Only a few modules will help us with this, which will completely translate the entire site into any desired language. Drupal 8 supports more languages then Drupal 7.
Drupal 7 modules:
Internationalization - a set of modules to expand the capabilities of multilingualism.
Variable - a module for editing Drupal registry variables. It is necessary if you need to translate system variables into another language.
After installing and activating the modules, by the following path admin/structure/types and for content types that require translation, enable multilingual support.
This is only a small part of the functionality of the set of these modules. Thanks to the Variable module, we can translate all available variables set in Drupal using set_variable. For example, the slogan of the site for the two versions of the site, the name, and much more. You can also translate menus, blocks, dictionaries, taxonomy terms, etc.
Drupal 8 modules:
To get the Drupal 8 website multilingual there needs to Install the four main multilingual modules (Language, Interface Translation, Content Translation, and Configuration Translation). Then in administrative menu, go to Configuration> Region and language> Languages (admin/config/regional/language). Afterward, click Add Language. Select the preferred language from the Language Name list. After waiting for the translation to load, return to the Languages page, with a confirmation message and a demonstration of the new language. Remember to add the Language switcher block in the Sidebar second region. This will allow site visitors to switch between languages as soon as the site is translated. In this fight Drupal 7 vs 8 - the winner is D8.
Drupal 8 vs Drupal 7: Text Editor
There are several text editors with a user-friendly interface that you can use in text fields. They allow you to easily enter and format text, insert pictures and links into it. We like CKEditor the most, available for Drupal 8, as it’s available out-of-box. It’s cool, isn't it? This text editor makes it easy to format text as needed and is similar to regular text editors such as Microsoft Word. Drupal 7 uses this module as well since it a beneficial WYSIWYG opportunity.
In this table we will highlight the differences between Drupal 7 and 8, it’s will be an interesting fight between Drupal 7 and 8, let’s start
|Drupal 7||Drupal 8|
|Price||Free (open source)||Free (open source)|
|Release||January 5, 2011||October 7, 2015|
|HTML||XHTML default markup||Default HTML5 semantic markup|
|Libraries||jQuery v2.x||jQuery v2.x, Modernizr, Underscore.js и Backbone.js|
|IE support||Supports IE 6, 7 and 8||Drops support for IE 6, 7 and 8|
|JQuery||Drupal 7 includes jQuery 1.4.4 and jQuery UI 1.8.7||Uses jQuery 2.0 and other code that assumes support for modern HTML5 / CSS3 browsers|
|SVG support||Supported browsers that do not support SVG (including IE8 and Android Browser 2.3)||Does not support browsers that do not support SVG (including IE8 and Android Browser 2.3)|
|The default theme engine||
theme_ * PHP-based functions and files * .tpl.php
Represents a branch
* .html.twig templates ()
|Adding CSS or JS||Drupal_add_css () and drupal_add_js () functions||Attaches JS / CSS resources in the #attached property of a rendering array using libraries|
|Core modules||Many preprocessing functions and CSS files are included in the core modules||Replaces many of the preprocessing functions and CSS files that were previously included in the base modules using Classy, a basic base theme that embeds classes in markup and includes the appropriate CSS|
|Symfony||Doesn't include Symfony framework||Uses the Symfony platform and its MVC architecture, which simplifies support, scaling, and code reuse|
|Edits||You need to go to the edit page to make changes||The built-in editor helps you edit the contents of the page without going to the edit page, instead, simply right-click to edit|
|Image module||Does not have an image module||Features Picture Module, which automatically resizes images for different screens|
|New Email Field||Simple email field||The email field automatically checks the email address and generates a mailto: link when displayed|
|Views||Views are an added module||Views are added as one of the main modules|
Drupal’s flexibility is key to its success and allows both low-tech users and programmers to create great websites. Still, Drupal 7 is the most popular version of Drupal at the moment and will be supported until November 2021. Unfortunately, its support will be paid. Drupal 7 has a lot to do: extensive documentation, lots of publicly available modules, and lots of support from those who have websites. However, it’s very difficult to migrate the Drupal 7 site to Drupal 8, so after November 2021, the updates will be much more complicated, and the site will most likely have security issues. Starting from 2019, we would not recommend creating a site on Drupal 7, especially since it will teach you obsolete ways to use Drupal, and it would be better to start with Drupal 8.
The Drupal 8.x platform was created for large projects, it can even be called a corporate solution. Initially, its capabilities are much greater than the 7th version. Therefore, there are not so many plugins. However, keep in mind that Drupal 8 requires a lot more server resources: memory, processor frequency, as well as VPS or a dedicated server as a hosting. Shared hosting is not suitable, because in order to use all the functionality of the framework on which it is built, a specific server configuration will be required. To develop Drupal 7 modules, developers need to have basic knowledge of PHP and higher. To develop custom solutions for Drupal 8, the programmer must already at least work with OOP in PHP, and basic knowledge is no longer enough.
In rare cases, to get the necessary functionality it’s cheaper to switch from Drupal 7 to Drupal 8. But, to be honest, usually everyone stays on the current version and just develop an additional plugin to expand the capabilities of the site.
Drupal 8 contains less documentation and public modules but is currently well supported. Besides, after Drupal 9 launched in June 2020, migration will be as easy as updating the Drupal core. This means that building a site on Drupal 8 can be more complicated, but in the long run, it will be much easier to maintain.
From Golems with love to you and Drupal! Take care of yourself.