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',substr(DEDEINC,-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,就可以加载模板文件,并显示了。
上一篇:Dedecms友情链接/uploads/fli<x>nk/不显示正确的图片路径错误
下一篇:/include/uploadsafe.inc.php dedecms注入漏洞修复方法
总结以上是内存溢出为你收集整理的DedeCms文件加载顺序原理介绍全部内容,希望文章能够帮你解决DedeCms文件加载顺序原理介绍所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)