婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 網站建設 > 建站知識 > 如何使用織夢小助手

如何使用織夢小助手

POST TIME:2020-04-11 21:39

很多的時候,織夢是不能滿足我們要求的,比如我們要增加個織夢沒有功能,例如,我們要調用分類信息三級聯動里面的內容,以前我們要寫個函數放在/include/extend.func.php里面,然后,在我們的首頁,或其它而面引入comm.inc.php文件,即可調用這個函數,功能就這樣實現了,只要會php編程什么功能都可以在織夢的基礎上擴展。

現在不僅僅有這個extend.func.php文件了,織夢幫我們提供了一個叫小助手的功能,從字面意思理解,小助手就是幫助我們的人助手,沒有錯,在include/helpers里面有很多的小助手文件,只要我們的以后擴展功能直接在這里建立一個文件命名為:起的名字.helper.php,然后再在要調用的文件里用helper('起的名字')進行初始化,即可調用起的名字.helper.php這個文件里面的功能了。

一、織夢小助手的應用。

舉例說明:計算二個數的值。

定義php文件名:sum.helper.php,然后在這個文件里寫上如下計算二個數的代碼。

<?php

$a=10;
$b=33;

function sum($a,$b){
return $a+$b;
}

?>

如果我們要在某個文件例如文件test.php里調用這個功能,我們只需要在這個test.php文件里,用helper('sum')進行初始化一下,即可調用。

test.php文件內容如下:

require_once(dirname(__FILE__)."/include/common.inc.php");
helper('sum');
echo sum(32,34);

輸入結果是:66。請注意,無論是用織夢小助手,還是用extend.func.php進行二次開發,都要引入文件common.inc.php文件。織夢小助手的應用就是這樣簡單。

對比一下用織夢小助手和extend.func.php進行二次開發的好處。

如果我們在extend.func.php這個里面進行功能二次開發的話,如果是小的功能還好,如果是代碼特別多,那么,用這個就有缺點了,想一下如果這個文件太多,不僅對于程序員來說感覺亂,在調用功能的時候不容易找,而且這樣也降低了執行效率,本來一個程序員寫好的功能,結果另一個程序員來調用那么,找起來就非常不便,浪費時間。

而用小助手,而大大提高了效率,不管有多少個人來寫,不管什么樣的誰來調用,只要找到對應的文件名,就可以調用,而且,每個功能對應一個文件,這樣也不至于弄錯,而且調用也非常方便,只需要初始化一下小助手即可。

二、小助手的實現代碼分析。

織夢小助手既然如此好,我們要研究一下,這個小助手是如何實現的?以后,我們在自己開發中也可以把這種思想用到我們的開發中,提高效率。我們來分析一下小助手是如何實現這樣的功能的。

首頁要在入口文件common.inc.php里面進行初始化(這里的初始化與上面的提到的helper('sum')初始化不一樣,這里指的是引入helper.inc.php并根據里面的數組創建程序文件)織夢小助手,若文件helper.inc.php存在,則把里面的數組$cfg_helper_autoload,通過helper($cfg_helper_autoload)初始化(這里跟上面提到的初始化一樣),若沒有這個文件,而用默認的。

代碼如下:

小助手是如何初始化的?這是重點。小助手正是通過文件common.fuc.php里面下面這段代碼,實現了我們上面舉的例子功能。

我們分析一下上面的代碼,

第一句代碼$_helpers = array();這句用來設置一種狀態,在php里面經常用到,常常是true和fault就像電源開關似的,當程序中某個功能執行成功就設置成true,當某個功能沒有執行或某個文件不存在等都可設置成fault這樣就可以在true或fault時執行不同的功能了,程序中經常用到非常方便。

接下來就開始判斷,我們傳的$helpers是不是數組,例如我們一次開發了多個功能,建立了多個類似: 名字.helper.php的多個文件,在調用初始化helper(數組)時,就需要傳數組,程序會判斷如果傳的是數據,那么進行遞歸調用,當第一個文件假設名為abc.helper.php,當foreach完第一個后,進入到遞歸,再判斷一下$dede的值abc是不是數組不是則向下執行代碼。

if (isset($_helpers[$helpers]))
{
continue;
}

這段代碼判斷一下這個文件abc.helper.php,是不是存在并引入了?若已經有了了也引入了,那么,回到foreach里面繼續遍歷,否則接著向下執行,判斷一下abc.helper.php文件是不是存在,若存在,則引入abc.helper.php文件。并把狀態$_helpers[$helpers]設置為真,表明這個文件$_helpers[$helpers]已經引入了,最后一句判斷$_helpers[$helpers]若沒有設置,則打印出文件abc.helper.php無法裝載。

請注意:此時程序并沒有完成,只是把數組$helpers里面進行了第一個遞歸,接著繼續foreach,接下來程序執行的動作就跟上面的分析的一樣了。這樣通過一個遞歸,就可以把數組里面的代表文件名的鍵全部循環出來,并把對應的文件明引入到要調用的文件里了。

當我們在要調用的文件里面用helper($helper)初始化后,就開始運行上面的代碼了。作為一個程序員,既要知道是什么,還要知道為什么,本篇內容由織夢基地作的分析,拋磚引玉,共同進步。


收縮
  • 微信客服
  • 微信二維碼
  • 電話咨詢

  • 400-1100-266
主站蜘蛛池模板: 突泉县| 固安县| 乐清市| 沅江市| 视频| 徐闻县| 南康市| 肇东市| 新巴尔虎右旗| 舒兰市| 民丰县| 项城市| 军事| 静宁县| 上栗县| 新巴尔虎右旗| 嵩明县| 平乡县| 湖口县| 崇义县| 连江县| 通辽市| 太谷县| 靖边县| 紫金县| 余干县| 广河县| 石渠县| 车致| 平利县| 辽阳市| 建始县| 忻州市| 荥阳市| 京山县| 辰溪县| 昌吉市| 宁乡县| 宁津县| 广饶县| 张家港市|