Drupal 8 website architecture: brand-new, efficient, and beautiful
A million words are not enough to describe Drupal 8’s benefits for websites. Its amazing third-party integration opportunities, multilingual superpowers, mobile-first approach, easy content editing, and many other features convince website owners that it’s time to upgrade to Drupal 8 or build a D8 site from scratch. But especially impressive are Drupal 8 website architecture changes. With them, website development processes are far more efficient, and every website is much easier to create, deploy, maintain, update, or extend. We will now look behind the curtain and see a little more.
The need for big architectural changes
Drupal’s founder Dries Buytaert explained some of the reasons why Drupal needed big architectural changes. Forward-looking changes are always necessary for a CMS to stay on top. With Drupal 8 changes, the community wanted to resolve certain limitations of Drupal 7, modernize Drupal as much as possible, and make it universally understandable so that companies of all sizes could easily find developer talent.
To achieve this, Drupal adopted Symfony components, modern PHP concepts, OOP, Twig template engine, and more. It rebuilt its core, APIs, configuration management system, and so on. The results are stunning — Drupal 8 architecture is truly brand-new compared to that of Drupal 7. Let’s take a closer look at some of these changes.
Drupal 8 and its new website architecture
Drupal 8 and OOP
Here is something that makes website code better structured, highly reusable, very maintainable and extensible, and also easy to read by non-Drupal developers. This is the adoption of OOP (object-oriented programming) in Drupal 8.
As opposed to traditional, or procedural programming, OOP has most of the code presented as classes and objects of these classes. Objects have certain properties and use certain methods.
The three major principles of OOP include encapsulation, inheritance, and polymorphism. Developers deal with namespaces, indenting and whitespace, naming conventions, and so on.
Sounds complicated? Well, OOP PHP does present a learning curve for developers, which is made up for by numerous benefits.
Drupal 8: “Symfony inside”
The new version of Drupal contains the components of Symfony 2 — the modern, object-oriented, PHP-based framework.
It is not necessary for Drupal developers to learn Symfony as a framework — they just need to get acquainted with Symfony components, and the reward is amazing.
With Symfony 2, Drupal development becomes even more flexible and in line with trending technologies.
And, of course, this significantly saves development time. With no need to “reinvent the wheel” and build everything from scratch, Drupal developers can use plenty of ready solutions for various projects.
Among all the inherited Symfony 2 components, the strongest impact on D8 core has probably been made by DependencyInjection, EventDispatcher, and Routing.
Twig template engine in Drupal 8
A true “jewel” of Drupal 8 front-end architecture is the Twig template engine that replaces Drupal 7’s PHPTemplate.
Twig gives you clean templates with consistent code. Thanks to its inheritance in Twig files, duplicate code is avoided. The logic and presentation are properly separated. And, overall, Twig is more secure, easier to work with, and richer in options.
“You don’t need extra modules for features like slideshows or widgets on your page. You can do it in the theme,” said Mark Ferree and Matt Cheney in their webinar about best practice architecture in Drupal 8.
Drupal 8 and Composer
Composer has been called the best thing that has happened to the world of PHP, and Drupal 8 is now using the best.
This command-line tool manages your website dependencies — all the necessary libraries and packages you need. Composer lists all your website’s dependencies in the special composer.json file.
Saying “dependency manager” cannot fully describe Composer’s powers. The tool is helpful on every step of Drupal 8 development.
A good tone, and a very convenient practice in Drupal 8 allows you to use Composer for installing and updating Drupal core, modules, and themes, applying patches, and more. Commands like “composer create-project” and “composer update drupal/core” are just a couple of examples of numerous commands that can do magic in the terminal.
Powerful Drupal 8 core
The heart of Drupal, its core, has become more powerful than it has ever been before. So you no longer need extra modules for many of your needs — a lot of things can be done with D8 core capabilities.
Drupal 8 also introduces lots of new APIs that deal with everything, be it caching, migration, third-party integration or anything else.
The admin dashboard alone is like a flight control console.The Views module is now in the core, and gives you almost unlimited opportunities in structuring and presenting your content in accordance with to all imaginable settings. Intriguing novelties like the Layout Builder module help create layouts for content items and lets anyone feel the architect of their site with no coding as well. And that’s just the beginning.
Let some awesome story begin right now — upgrade to Drupal 8 or order a new website creation. Our developers love Drupal 8, create modules and patches for it, and teach D8 classes to newbies. They know how to use the benefits of new Drupal 8 website architecture for you. Drop them a line!