## evoCore FrameWork

# `/inc/CONTROL` folder

This folder holds the Controllers for the application.

Each controller is a PHP include file which implements the logic for manipulating a particular "set" of data. For example there could be a controller to handle general settings and another controller to handle local settings.

Controllers are grouped into foldes which represent modules. For example, the local and the general settings controllers both belong to the same module which holds the settings alltogether.

Each HTTP request will typically get routed to precisely one controller (except for stub controllers) which means there will be one PHP include for that controller. Therefore it seems reasonable to make each controller as small as possible in order to minimize parsing/compiling/memory usage overhead. However, different actions on the same "set" of data -- like creating, editing and deleting the same data -- are closely related and, though they are not invoked at the same time, separating these actions into different controllers makes it harder to maintain the application over time when new fields or constraints are added to that set of data.

Thus, it is recommended to try and find the right trade off between the size of the controller and the logical grouping of actions into the same controller.