Code analysis ForXoops
From the index.php, it invokesmainfile.php at the first time.Mainfile.php does some securitycheck and include the include/common.php. Common.php plays a vitalrole in the work flow.
The logic in the common.phpfile:
1.define the global variables:$xoops,$xoopsPreload,$xoopsLogger,$sess_handler;
2.include the xoopsload.php; xoops systemdefines its own class loaded mechanism.We have a detailed check onxoopsload.php as following:
#there are six methods in classXoopsLoad: load();loadCore();loadFramework();loadModule();loadCoreConfig();loadConfig();
#loadCoreConfig() method usearray(key=>filename,value=>filelocation) to load all the xoops core files. It mainly includesxoopskernel.php,xoopscache,xoopsmodel.php and formAPI.
#loadConfig() method cal load both corefiles and module config files.
#Acoording to the name and type, load()method uses loadCore,loadFramework,loadModule to load thecorresponding files and classess.
3.load XoopsPreload class, it makes useof single pattern and it offers a way to do preprocess formodules.
4.load Xos_kernel_Xoops class, this isthe true engine of xoops system.let me explain what service we canget from kernel class
#path variables forvar,lib,modules,themes;
#path and urlutility;
#select theme.
5. load object.php, XoopsObject isdefined in the object.php and it is the base class for the wholexoops system classess. It has the magic method to set and get varsdynamiclly.
6.load crtiteria.php which provides queryinterface for database.
7.include textsanitizer;
8.include functions.php , other parts canuse it to find their handlers.
9.load databasefactory.php,XoopsDatabaseFactory adopts the factory design pattern to fetchdatabase connection.
10.load config handler; Handler can helpfetch the database data for its object.During this process, theconfig data from database and files are mergedtogether.
11.get the right languagepackage;
12.session and useauthentication;
13.themeselection;
14.load xoopsmodules;
15.render head,module,footerhtml.