花魁直播高品质美女在线视频互动社区 - 花魁直播官方版

 歡迎來到素材無憂網(wǎng),按 + 收藏我們
登錄 注冊(cè) 退出 找回密碼

dede助手小工具h(yuǎn)elper是如何載入的?

時(shí)間: 2018-12-11 08:44 閱讀: 作者:素材無憂網(wǎng)

今天在對(duì)dede的問答模塊進(jìn)行修改的時(shí)候發(fā)現(xiàn)直接調(diào)用/include/helpers/archive.helper.php文件中的函數(shù)居然是可行的,但是找遍了ask模塊的所有代碼都沒有發(fā)現(xiàn)這個(gè)是文件如何引入的。我記得有人說過dede的helper文件由系統(tǒng)自動(dòng)引入,不需要自己手動(dòng)完成。但是這個(gè)東西是如何自動(dòng)引入的呢,是所有的地方都能用/include/helpers/目錄下面的所有文件嗎?

答案是否。

官方之所以說/include/helpers/下面的文件自動(dòng)引入 是因?yàn)閐ede的php文件中幾乎都require了/include/common.inc.php這個(gè)初始化文件,而這個(gè)文件中完成了對(duì)所有/include/helpers/下面的文件自動(dòng)引入。相關(guān)代碼如下:


if(file_exists(DEDEDATA.'/helper.inc.php'))
{
require_once(DEDEDATA.'/helper.inc.php');
// 若沒有載入配置,則初始化一個(gè)默認(rèn)小助手配置
if (!isset($cfg_helper_autoload))
{
$cfg_helper_autoload = array('util', 'charset', 'string', 'time', 'cookie');
}
// 初始化小助手
helper($cfg_helper_autoload);
}

這段代碼的意思是如果變量$cfg_helper_autoload已經(jīng)存在,則執(zhí)行helper($cfg_helper_autoload);而默認(rèn)是存在的。helper()這個(gè)函數(shù)實(shí)現(xiàn)了具體引入哪些/include/helpers/下面的文件,是哪些呢,這要取決于$cfg_helper_autoload變量的內(nèi)容。

我們看看這個(gè)$cfg_helper_autoload里面有些什么東西。原來這個(gè)變量是在/data//helper.inc.php中定義的:

<?php
//小助手配置項(xiàng)
$cfg_helper_autoload = array
(
'charset', /* 編碼小助手 */
'channelunit',/* 模型單元小助手 */
'string', /* 字符串小助手 */
'time', /* 日期小助手 */
'file', /* 文件小助手 */
'util', /* 單元小助手 */
'validate', /* 數(shù)據(jù)驗(yàn)證小助手 */
'filter', /* 過濾器小助手 */
'cookie', /* cookies小助手 */
'debug', /* 調(diào)試小助手 */
'archive', /* 文檔小助手 */
'upload', /* 上傳小助手 */
'extend', /* 擴(kuò)展小助手 */
);
?>

看到了吧 默認(rèn)引用的helper中已經(jīng)包括了archive文檔小助手,而ask模塊一開始就是require了/include/common.inc.php的,因此一層一層的分析下來,可以得出這樣的結(jié)論,凡是引入和/include/common.inc.php文件的php代碼,都是能直接執(zhí)行默認(rèn)的那幾個(gè)助手小工具里面的代碼的。

版權(quán)聲明: 本站資源均來自互聯(lián)網(wǎng)或會(huì)員發(fā)布,如果侵犯了您的權(quán)益請(qǐng)與我們聯(lián)系,我們將在24小時(shí)內(nèi)刪除!謝謝!

轉(zhuǎn)載請(qǐng)注明: dede助手小工具h(yuǎn)elper是如何載入的?

標(biāo)簽:  
相關(guān)文章
模板推薦