Application and its main components

The application workflow can be divided into several key stages:

  • The application receives a request
  • Routing determines the controller of the module/add-on responsible for its processing
  • The controller method generates a response

The application works in several modes:

  • Frontend - the visible part of the pages available to website users
  • Admin panel - the administrator panel
  • Cron Manager - background processes servicing the application

In the framework, an application is understood as a class named bff. This class is the connecting and key element in the interaction of all framework components:

All application components can be conditionally divided into several main types:

  • Class - a base class, usually an autonomous utility class.
  • Component - a class that inherits the base class Component and often includes several files, templates, and a model.
  • Module - a group of files responsible for a separate section of the application and having a certain structure, controllers, a model, and templates.
  • Plugin - an extension of the application that implements additional functions.
  • Theme - an extension of the application responsible for the appearance of the entire application.

For a more detailed description of the directory and file structure, as well as a list of the main components, please refer to this article.