欢迎您光临深圳塔灯网络科技有限公司!
电话图标 余先生:13699882642

dede助手小工具helper是如何载入的?

发表日期:2018-03 文章编辑:小灯 浏览次数:2721

今天在对dede的问答模块进行修改的时候发现直接调用/include/helpers/archive.helper.php文件中的函数居然是可行的,但是找遍了ask模块的所有代码都没有发现这个是文件如何引入的。我记得有人说过dede的helper文件由系统自动引入,不需要自己手动完成。但是这个东西是如何自动引入的呢,是所有的地方都能用/include/helpers/目录下面的所有文件吗?

答案是否。

官方之所以说/include/helpers/下面的文件自动引入 是因为dede的php文件中几乎都require了/include/common.inc.php这个初始化文件,而这个文件中完成了对所有/include/helpers/下面的文件自动引入。相关代码如下:

if(file_exists(DEDEDATA.'/helper.inc.php')){require_once(DEDEDATA.'/helper.inc.php');// 若没有载入配置,则初始化一个默认小助手配置if (!isset($cfg_helper_autoload)){$cfg_helper_autoload = array('util', 'charset', 'string', 'time', 'cookie');}// 初始化小助手helper($cfg_helper_autoload);}

这段代码的意思是如果变量$cfg_helper_autoload已经存在,则执行helper($cfg_helper_autoload);而默认是存在的。helper()这个函数实现了具体引入哪些/include/helpers/下面的文件,是哪些呢,这要取决于$cfg_helper_autoload变量的内容。

我们看看这个$cfg_helper_autoload里面有些什么东西。原来这个变量是在/data//helper.inc.php中定义的:

<?php//小助手配置项$cfg_helper_autoload = array('charset', /* 编码小助手 */'channelunit',/* 模型单元小助手 */'string', /* 字符串小助手 */'time', /* 日期小助手 */'file', /* 文件小助手 */'util', /* 单元小助手 */'validate', /* 数据验证小助手 */'filter', /* 过滤器小助手 */'cookie', /* cookies小助手 */'debug', /* 调试小助手 */'archive', /* 文档小助手 */'upload', /* 上传小助手 */'extend', /* 扩展小助手 */);?>

看到了吧 默认引用的helper中已经包括了archive文档小助手,而ask模块一开始就是require了/include/common.inc.php的,因此一层一层的分析下来,可以得出这样的结论,凡是引入和/include/common.inc.php文件的php代码,都是能直接执行默认的那几个助手小工具里面的代码的。


本页内容由塔灯网络科技有限公司通过网络收集编辑所得,所有资料仅供用户参考了本站不拥有所有权,如您认为本网页中由涉嫌抄袭的内容,请及时与我们联系,并提供相关证据,工作人员会在5工作日内联系您,一经查实,本站立刻删除侵权内容。本文链接:http://dengtar.com/11258.html
相关cms文章
 八年  行业经验

多一份参考,总有益处

联系深圳网站公司塔灯网络,免费获得网站建设方案及报价

咨询相关问题或预约面谈,可以通过以下方式与我们联系

业务热线:余经理:13699882642

Copyright ? 2013-2018 Tadeng NetWork Technology Co., LTD. All Rights Reserved.