Joomla's architecture is based on the MVC framework. We can divide the architecture into four major parts:
- The display: This is the frontend, which a user sees when they visit the website. It contains the HTML and CSS files.
- Extensions: Extensions can be further sub-divided into five major types:
- Components: Components can be thought of as mini-applications; they are intended for both users and administrators.
- Modules: These are small and flexible extensions that can be used to render pages. One example is a login module.
- Plugins: These are more advanced extensions and are also known as event handlers. These events can be triggered from anywhere and execute the plugin associated with that event.
- Templates: Templates take care of how the website looks. There are two types of templates that are used—frontend and backend. The backend template is used by the administrators to monitor functions, whereas the frontend template presents the website to visitors/users.
- Languages: These handle the translation of the website text. Joomla supports over 70 languages.
- Framework: The framework consists of the Joomla core. These are the PHP files that take care of the major functionality of the application, such as configuration files.
- Database: The database stores the user information, content, and so on. Joomla supports MySQL, Microsoft Server SQL (MSSQL), and PostgreSQL, among others.