Joomla is written in an object oriented PHP with MVC model. The general structure of Joomla consists of :
- Joomla CMS,
The database stores content and associated information: part of the settings, users, extensions, texts.
Joomla CMS is an engine that makes other elements work. It is an open source software built to achieve flexibility, ease of management and further development.
CMS, Components, Modules and Plugins are responsible for all the functions of the website.
Components are small programs that perform specific tasks (for instance : ecommerce component, contact component). A component always has two parts: Administrator and Site. Components are main building blocks of Joomla CMS and are the way Joomla can expand and fulfil additional tasks and requirements.
Modules are even smaller applications (than components) and are mostly used to display static or dynamic information on different parts of the website both in admin and site sections. Often they look like small boxes and display additional to component content.
Plugin are also extensions that add additional functionality to existing components and often display content from one extension in another. Plugins can also be executed on the particular event trigger.