
In the rapidly changing world of IT, and not only, those who are constantly evolving win: stopped - it means lost. This is true in particular for CMS. Trying to keep up with the times, the release of the new version of CMS Drupal 8 is not far off.
At the moment, 3 alpha version of Drupal 8 is available. Several initiative groups have been created working on the main areas: Configuration Management, Design, Mobile devices, Multilingual and Web services. The kernel now has 1600+ contributors (approximately two times more than Drupal 7 had). The new version made more than 500 innovations and changes. Below I will mention, in my opinion, the most significant of them. Changes are described in relation to Drupal 7, i.e. It is assumed that the reader is familiar with Drupal 7.
Changes are available through the interface
Many improvements have been made to the default interface - which will simplify the use of CMS by non-professional users. Since the most demanded functionality is added to the core, practically there is everything you need out of the box to build an “average” website without using third-party modules. That will allow the use of 8-ku immediately after the release, do not wait for the release of the main modules, as it was for previous versions and usually took about 6 months. And so, the changes:
')
Inline editingEditing content becomes very simple and convenient: by clicking on the pencil icon, near the desired content - it becomes available for editing, of course, if you have the appropriate rights.
Views module in the coreViews is the most popular module. As its use in previous versions of Drupal shows, the use of the new version of Drupal increases significantly after the release of this particular module.
Built-in multilanguageFor full use of multilanguage in the previous version of Drupal, it was necessary to additionally install about 5 additional modules, now multilanguage is fully supported in the kernel. In 8-ke, you can change the default language - English to another.
Built-in CKEditor editorA handy text editor is now available out of the box.
Adding ImagesNow you can, without installing additional modules, insert the image in the right place in the text. It is also possible to simultaneously download multiple images.
Responsive design for embedded themesBuilt-in themes are now responsive and ready for use on mobile devices.
New toolbarThe toolbar is completely redesigned and has now become adaptive, more convenient and intuitive.
The ability to change the shape of the nodeChange the display form of the node, you can now without writing code.
New field typesAdditional frequently used field types are built into the kernel: Entity Reference (allows you to establish a connection between the contents), Date (for events), Link, Telephone, Email, Picture.
Configuration management systemThe configuration system has been completely redone, and now the settings data is not stored in the database, as it was before, but in files. That makes it easy to export / import settings, use different settings for development and release, as well as, store data in a version control system.
Some modules removed from kernelThese modules are: Dashboard, Poll, Blog, Profile, Open ID, PHP filter, Trigger. Mostly, these modules are now available separately.
Upgrade from previous versionsTo upgrade from previous major versions, the Migrate module is integrated into the kernel, which allows you to upgrade directly from 6, 7 to 8.
Changes for developers
The biggest changes concern the developers, as they make a departure from the usual Drupal development technology towards OOP and the use of the Symfony2 components.
Everyone knows the steep learning curve of Drupal. Using OOP should make learning easier and more accessible. The core of Drupal, has never been so well documented, thanks to the excellent documentation of the Symfony2 components.
Using OOPAlthough OOP was partially used before, the use of OOP was officially adopted in 8-ke. Started a gradual departure from procedural programming and the use of hooks, which were used in times when the PLO was not yet available in the right amount in PHP. In this regard, there are many new, for Drupal, concepts and concepts. For namespaces, it is customary to follow the PSR-0 standard (a little later, perhaps PSR-4). In 8-ke, the full transition to OOP will not be made, and a partial legacy in the form of a procedural code will remain, but this will be done in Drupal 9.
Using symfony2 componentsOne of the major innovations in 8k is the use of the symfony2 components:
- HttpFoundation and HttpKernel are one of the main components that started integrating Symfony2 into Drupal. Converts everything related to HTTP when requested and responded to objects;
- Routing - converts an HTTP request to a call to a specific function, like hook_menu;
- ClassLoader - used to load classes as needed;
- DependencyInjection or Service Container - allows you to make classes independent, and thus makes them available for reuse and unit testing;
- EventDispatcher - implements the Observer pattern. It does the same thing as the hook system, but at the moment it does not replace them completely;
- Yaml - allows you to work with the yaml format;
- Twig - a new convenient, powerful template engine;
- Serializer - convert objects to a specific format and back;
- Translation - translation system;
- Process - used for execution in the subprocess, commands from the console;
- Validator - a component for checking values;
ComposerThe dependency manager, which is used for downloading and maintaining up to date the used libraries, project components.
Twig Template EngineThe previous template engine Phptemplate, often criticized for the inconvenience of working with it, using PHP inserts, poor security. Twig is not only devoid of these shortcomings, but it also has many advantages: it is easy to learn, flexible, templates are easy to read, so the word is sheer fun for a temizer.
Configuration systemAs mentioned above, the configuration system has been completely revised and now the data is stored in text files, in a very convenient format yaml.
PHPUnitAdds the ability to unit testing, which will replace the current Simpetest.
New block conceptIn 8-ke, a block is an entity (Entity), with its inherent properties: creating additional fields, block types, versions.
RESTful serverOut of the box, Drupal 8 can act as a REST server and serve many devices.
Other third-party components- Doctrine - not fully used, but only a small part - Annotations. Which adds the ability to use annotations, for example for configuring plugins;
- EasyRDF - a component used to add RDF and thus approximate the semantic web;
- Assetic - a framework that is used when downloading a page or other content to compress and / or convert data;
- Guzzle - http client;
- PSR / Log - logging system;
PluginsA plugin is a class that is intended to complement the work of the kernel or modules, and is essentially a replacement for info hooks. The plugin is not a separate component and is part of the module, which can have many plug-ins.
Not everyone needs changes
As you know, people resist any changes - even good ones, since this knocks them out of the thumb and causes them to leave the comfort zone. And in this case it makes me study - which in itself is very useful, especially in the light of a recent
article .
These innovations are believed to be attributed to the fact that Drupal 8 is moving towards the corporate market, where professional developers will be more in demand. Some developers who
do not want to master the new architecture and development technology are not satisfied with this situation. Therefore, a fork was made with Drupal 7, which was called BackDrop CMS. This is not something new for Drupal, forks have been made before, but none of them has become popular. The creators of BackDrop plan to develop it in a “calmer” way, but also plan to gradually use OOP, connect the Twig template engine, or write a similar one. I think the most difficult thing will be supporting BackDrop after the end of official support for Drupal 7 (and this will be after the release of D9).
Instead of conclusion
The above list of changes is far from complete; you can find more details
here . Work on Drupal 8 has not yet been completed, the expected exit is the first half of next year. Those who want to try out the latest version can now get a pre-release
from here or from the repository.