Joomla - Architecture

Joomla is a Model-View-Controller web application. In this chapter, we are going to discuss the architectural style of Joomla. The following diagram shows the architecture of Joomla.
Joomla architecture contains the following layers −
- Database
- Joomla Framework
- Components
- Modules
- plugin
- Templates
- Web server
Database − A database is a collection of data and can be stored, managed and organized in a specific way. The database stores user information, content, and many other necessary site data. It is used to store administrative information for managing the Joomla site. Using the Joomla database layer, it provides maximum flexibility and compatibility for extension.
Joomla Framework − Framework is a set of open source software that Joomla CMS is built on. It is designed for greater flexibility and breaks down the structure into single modular packages, which makes it easier to develop each package.
Components − Components are treated as mini-applications. It consists of two parts: Administrator and Site . Whenever the page loads, the component is called to render the body of the main page. The Admin part manages various aspects of the component, and the site part helps render pages when a request is made by a site visitor. Components are the main functional building block of Joomla.
Modules - Modules is an extension that is used to display pages in Joomla. It is also used to display new data from a component. It often looks like fields like the login module. In the Joomla admin, modules are managed by the module manager. It displays new content and images when the module is linked to Joomla components.
The plugin is also a kind of Joomla extension, it is very flexible and powerful for extending the framework. It contains a few codes that are used to execute a specific event trigger. Typically used to format the output of a component or module when building a page. An event-related plugin function is executed in sequence when a particular event occurs.
Templates - A template defines the look and feel of a Joomla site. Two types of templates are used: Front-end and Back-end . The Back-end template is used to manage the admin functions, where the Front-end template is the way the website is presented to the users. The templates are easy to build or customize your website. This provides maximum flexibility for the design of your site.
The web browser is the server that the user interacts with. It delivers web pages to the client. HTTP (Hyper Text Transfer Protocol) is used for communication between client and server.