Joomla is a Model-View-Controller web application. In this chapter, we are going to discuss about the architectural style of Joomla. The following diagram shows the architecture of Joomla.
The architecture of Joomla contains following layers −
Database − Database is a collection of data and can be stored, manipulated and organized in a particular manner. The database stores the user information, content and many more required data of the site. It is used to store the administrative information to manage the Joomla site. Using Joomla database layer, it ensures maximum flexibility and compatibility for extension.
Joomla Framework − Framework is a collection of open source software, where the Joomla CMS is built. It is developed for more flexibility and breaks the framework into single modular packages which helps each package to develop more easily.
Components − Components are considered as mini applications. It consists of two parts i.e. Administrator and Site. Whenever a page gets loaded, component is been called to render the body of main page. The Administrator part manages different aspects of the component and the site part helps in rendering the pages when request is made by site visitor. Components are main functional unit of Joomla.
Modules − Modules is an extension which is used to render the pages in Joomla. It is also used to display the new data from the component. It frequently looks like boxes such as login module. In Joomla administrator the modules are managed by the module manager. It displays the new content and images when module is linked to Joomla components.
Plugin − This is also a kind of Joomla extension, it is very flexible and powerful for extending the framework. It contains a bit of codes that is used to execute the particular event trigger. It is commonly used to format the output of a component or module when a page is built. The plugin function which are associated with event are executed in a sequence when a particular event occurs.
Templates − Template determines the look of the Joomla website. There are two types of templates used i.e. Front-end and Back-end. The Back-end template is used to control the functions by the administrator where-as the Front-end template is a way to present the website to users. Templates are easy to build or customize your site. It provides maximum flexibility to style your site.
Web Browser − It is a server where the user interacts. It delivers the web pages to the client. The HTTP (Hyper Text Transfer Protocol) is used to communicate between the client and the server.