• 全国400电话网上服务平台
    强大号码库资源任选,方便,快捷,快速开通。
    咨询热线:400-1100-266  

    DedeCms文件加载顺序原理介绍
    POST TIME:2021-05-24 03:03

    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,就可以加载模板文件,并显示了。

    
    关于我们 | 付款方式 | 建站知识 | 增值服务 | 网站模板
    Copyright © 2003-2016
    时间:9:00-21:00 (节假日不休)
    版权所有:巨人网络(扬州)科技有限公司
    总部地址:江苏省信息产业基地11号楼四层
    《增值电信业务经营许可证》 苏B2-20120278
    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信

    微信号已复制,请打开微信添加咨询详情!