Architecture of Joomla
Joomla is written in PHP and based on MVC (Model-View-Controller) design pattern. It uses MySQL (MS SQL version 2.5 or above, and PostgreSQL version 3.0 or above) to store data. There are various features (e.g., page caching, blogs, polls, language internationalization support, and RSS feeds, etc.), which make Joomla an excellent choice for CMS (Content Management System).
In this article, we have demonstrated the architectural design of Joomla.
The below diagram shows the structural architecture of Joomla:
The architecture of Joomla includes the following layers:
The Database consists of data except image files and documents which can be stored, manipulated, and organized in a specific manner. It includes the user information, content, and other required data of the site. It also contains the administrative information so that an admin can securely access the site and manage it. Joomla database layer is one of the most important factors which ensure the maximum flexibility and compatibility for the extension.
The Joomla Framework contains the collection of open-source software libraries/packages, on which Joomla content management system is built on. There is no need to install the Joomla Framework to use the CMS or vice-versa. Joomla Framework provides a group of files which is useful to create both web and command-line applications. It breaks the framework into single modular packages, and further, it helps each package to develop more easily.
Components are referred to as mini-applications which contain two parts:
Whenever a page is loaded, the component is called to render the body of the main page. The Administrator part manages the different aspects of the component, and the site part helps in rendering the page when any site visitor makes a request. Components are known as the important functional units of Joomla.
Modules can be defined as the lightweight extensions used to render pages in Joomla. They are used to display new data from the component. They can stand on its own and are managed by the 'Module Manager', which is itself a component. They look like boxes, such as the login module. They also help to display the new content and images when the module is linked to Joomla components.
The Plugin can be explained as a very flexible and powerful Joomla extension, used to extend the framework. Plugins are few codes that execute on occasion of specific event triggers. It is generally used to format the output of a component or module when a page is developed. The plugin functions which are associated with an event are commonly executed in a sequence whenever a particular event occurs.
Templates are used to manage the look of the Joomla websites. There are basically two types of templates available; Front-end and Back-end. The Front-end template is a way to manage the look of the website, which is seen by the users. The Back-end template is used to manage or control the functions by the administrator. Templates are the easiest way to build or customize the site. They are used to add maximum flexibility to make your site look attractive.
It is a server used to connect users to the site. It provides web pages to the client. The HTTP (HyperText Transfer Protocol) is used to communicate between the client and the server. Lastly, a website is that where you and your users interact with.