Drupal 8- CMS or Framework?
Since many years Drupal has been present in numerous content management systems rankings. It can’t be surprising because it is one of the best CMS. In this place it is worth to ask the question: ,,Is Drupal just a CMS?" or maybe this expression diminishes its versatility?
Drupal 8 – CMS or WAF?
Before answering the question, we have to know the difference between CMS (Content Management System) and WAF (Web Application Framework). CMS is used mostly as a complete solution for website development. It possesses all the necessary functionalities to present content, images, music or even films. Its capabilities may be expanded by the modules, and the layout may be easily changed with the usage of themes. No programming skills are required to create a simple website based on CMS. We can make this with a couple of clicks.
On the other hand, we have WAF. Most often it is used to build complex web apps. It is a kind of pattern that possesses ready-made functionalities for programmers. Unfortunately, the usage of any framework demands the knowledge of programming language in which it was written. All that we want to obtain, have to be written by programmers in the website’s code. Frameworks don’t even have admin panels.
Drupal – CMS or CMF?
Answering the headline question: Drupal 8 is a CMF (Content Management Framework) which means a combination of CMS and AWF. As a result, Drupal has the functionalities of both solutions. On the one hand, it has a ready-made website structure with admin panel and additional features like modules or themes, and on the other, it is a powerful tool for an experienced programmer.
In this place, some doubts may occur. For example, whether such solution might pass the exam in reality? Or maybe such a big variety of functionalities may cause chaos? Those are serious doubts, however, Drupal is dealing with them adequately.
Despite having dozens of functionalities as for the CMS, Drupal 8 has low weight, and its installation and database structure is more transparent than in previous versions. Drupal still has a proper taxonomy, ready configuration panel and reporting. Not to mention the variety of themes and modules available for Drupal CMS.
As the WAF, Drupal represents all the advantages of Symfony, meaning MVC pattern without strictly defined model structure and the set of independent components. Dependency Injection, Service Container or Event Subscriber – all of these tools may be found in Drupal 8. As all well-known frameworks, Drupal has its own templates system build on Twig, however, usage of other JavaScript technologies as React or Vue is fully-acceptable.
Thanks to that functionalities, CMS Drupal 8 became a versatile system that can be used to create simple websites by programmers not familiar with PHP, but those who possess comprehensive knowledge regarding website structure creation, basing on admin panel, modules and themes. From another perspective, Drupal 8 may be used by experienced programmers to build advanced web apps.
However, the biggest advantages of Drupal are not the CMS nad WAF functionalities themselves, but the possibility to use them in one project simultaneously. If we want to use framework functionalities, it doesn’t mean that we can’t take advantage of ready-made CMS solutions like modules or themes. Otherwise, Drupal is joining those two solutions perfectly. The content or users entities may be easily used in the web app code and they can be fully-adjustable to our needs. Such attitude eases the work because programmers don’t have to make everything from the bottom, instead, they can use ready-made, credible solutions.
An exemplary Drupal implication
Let’s assume that most often we use Drupal as the WAF, however, we don’t like writing complicated commands to the database. In this case, we can use the Drupal CMS functions such as Views module to ,,click" the commands, and then to download finished code.
Now, let’s assume that we are fond of Drupal’s taxonomy and we don’t want to create something brand-new. In this situation, the dictionaries may be used and adjusted to our project demands. The same in reverse situation: we create a simple, CMS-based website, however, we have to create complex, multistep contact form. There are no obstacles to make it on the Form API basis. We can give more and more examples because Drupal 8 was designed in such a way that it can be used in various projects and by specialists with different skills and preferences.
Summary
Drupal 8 is a complex and versatile platform. It is not just a CMS, but a powerful tool designed for website and web apps creation, that joins functionalities of CMS and framework. In spite of numerous capabilities, it is still easy-to-use and different programmers can take advantage of it.