System files structureWindu CMS is built on 3 main catalogs which are:
- app - all the system files and whole PHP engine of our CMS
- data - this one intrests us more, all the user data, graphic templates and widgets.
- cache - here system saves cache files
In the data folder we have subfolders and its structure looks like this:
app - applications folderIn this folder we have the core of the system and collection of plugins responsible for functions in Windu.
Logical structureWindus engine operates according to the following logic:
- index.php - Http query is directed to the folder with our CMS where its then directed with the use of .htaccess file to index.php. In this file paths and basic system variables are set. Then configDB.php is called out.
- configDB.php - here databse configuration is being loaded and also another part of start configuration is attached.
- config.php - another part of starting constants is being attached. In config.php file there are basic parameters such as defined structure of files and folders in windu and defined which plugins are supposed to be loaded up.
- init.php - is a key file for system to work, the whole logic is called out inside, this file contains whole autoloads which load up classes for Windu and also calls out the correct controller based on the router.
- pluginManager::loadMainConfigs() - call out inside of init.php loads up starting data from plugins. On this stage we completely loaded up config of the system. System is ready for first operations.
- router::instance()->callController($request) - call out of a controlled based on a path. System downloads routing tables,which the router uses to knows to which controller it has to refer to. By default the index action is called out, however in routing the variable #action can be defined, which tells us which action from the controller to call out.