找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 73|回复: 0

[cms教程] DedeCms文件加载顺序原理介绍

[复制链接]

该用户从未签到

发表于 2019-3-29 14:34:00 | 显示全部楼层 |阅读模式

您需要 登录 才可以下载或查看,没有账号?立即注册

×
DedeCms文件加载顺序原理介绍
            
        DedeCms 织梦cms可以说是国内最出名的cms系统了,对于我们研究cms,二次开发cms都是一个很好地学习。
        下面分享下dedecms文件是如何加载模板是如何替换的。
        比如织梦,ecshop这类模板引擎系统,研究它们的原理,就是从安装根目录的index.php看起来,看看都引入了那些文件,这些文件又起到了什么作用。
        织梦的index首先判断了/data/common.inc.php这个文件存不存在,存在就是已经安装过了,否则就是没安装过,跳到install/index.php。
        接下来引入了全局加载的常用文件
        require_once (dirname(__FILE__) . "/include/common.inc.php");
        进入这个文件我们会看到
        error_reporting(E_ALL || ~E_NOTICE);
        define('DEDEINC', str_replace("\\", '/', dirname(__FILE__) ) );
        define('DEDEROOT', str_replace("\\", '/', substr(DEDEINC,0]-8) ) );
        define('DEDEDATA', DEDEROOT.'/data');
        define('DEDEMEMBER', DEDEROOT.'/member');
        define('DEDETEMPLATE', DEDEROOT.'/templets');
        它定义了很多路径变量,这样在以后引入文件的时候,会变得非常方便和明了。
        接下来定义了一个function _RunMagicQuotes(&$svar)函数,这个函数对post,get,global等变量进行了过滤处理,这样使用更安全。
        接下来引入系统常用变量
        require_once(DEDEDATA."/config.cache.inc.php");
        上传变量
        require_once(DEDEINC.'/uploadsafe.inc.php');
        数据库配置
        require_once(DEDEDATA.'/common.inc.php');
        系统安全配置
        require_once(DEDEDATA.'/safe/inc_safe_config.php');
        剩下的是一些常用目录的设置,比如:
        模板的存放目录,插件目录,会员目录,专题列表,附件目录等。
        接下来引入数据库的操作类:
        require_once(DEDEINC.'/dedesql.class.php');
        剩下的是全局函数和模型控制的引入:
        require_once(DEDEINC.'/common.func.php');
        // 模块MVC框架需要的控制器和模型基类
        require_once(DEDEINC.'/control.class.php');
        require_once(DEDEINC.'/model.class.php');
        这些就是include/common.inc.php包含的内容,接下来,index.php 引入了
        require_once DEDEINC."/arc.partview.class.php";
        这个是模板解析类,有了它,通过调用它的方法Display,就可以加载模板文件,并显示了。
回复

使用道具 举报

网站地图|页面地图|文字地图|Archiver|手机版|小黑屋|找资源 |网站地图

GMT+8, 2024-10-5 19:11

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表