
2014-06-26 &nb✘₹sp;| 發布者:梁國(g≠α∑ uó)芳 | →¶; 查看(kàn):3320次
ThinkphpThinkPHP3.2版本提供了(le)把每個(gè)操作(zuò)方☆γ法定位到(dào)一(yī)個(gè)類的(♠↕←de)功能(néng),可(kě)以讓你(nǐ)的(de)開™¶↕"(kāi)發工(gōng)作(zuò)更細化(huà),可(k₹✘ě)以設置參數(shù)ACTION_BIND_CLASS,例如(rú):
'ACTION_BIND_CLASS' => True,
設置後,我們的(de)控制(zhì)器(qì)定義有(yǒu)所改'¥βπ變,以URL訪問(wèn)為(wèi) http://serverName/Home/Index/index為(wèi)例,原來(lái)的(de)控制(zhì)器(qì)♥±•∏文(wén)件(jiàn)定義位置為(wèi):
Application/Home/Controller/IndexController.class.php
控制(zhì)器(qì)類的(de)定義如(rú)下(xià):
namespace Home\Controller;use Think\Controller;class IndexController extends Controller{public function index(){echo '執行(xíng)Index控制(zhì)器(qì)的(de)in dex操作(zuò)';}}
可(kě)以看(kàn)到(dào),實際上(shàng)我™≤÷們調用(yòng)的(de)是(shì) Home\Controller\IndexController 類的(de)index方法。
設置後,控制(zhì)器(qì)文(wén)件(jiàn)位置改為(wè↓ε♣βi):
Application/Home/Controller/Index/index.class.php
控制(zhì)器(qì)類的(de)定義如(rúπ≠¶γ)下(xià):
namespace Home\Controller\Index;use Think\Controller;class index extends Controller{public function run(){echo '執行(xíng)Index控制(zhì)器(qì)的(de)↑÷index操作(zuò)';}}
現(xiàn)在,我們調用(yòng)的(de)其實是(s¶¶hì) Home\Controller\Index\in¥♠ ≠dex 類的(de)run方法。
run方法依舊(jiù)可(kě)以支持傳♦入參數(shù)和(hé)進行(xíng)≠<Action參數(shù)綁定操作(zuò),但(dàn)不($®bù)再支持A方法實例化(huà)和(hé)R方法遠(yuǎn)程≈λ₽調用(yòng),我們建議(yì)R方法不(b<δù)要(yào)進行(xíng)當前訪問(wèn)←♥控制(zhì)器(qì)的(de)遠(yuǎn)程調用(yòng)。
當設置操作(zuò)方法綁定到(dào)類後,前置δ>和(hé)後置操作(zuò)的(de)定義有(yǒu)£♣所改變,隻需要(yào)在類裡(lǐ)面定 ♦義_before_run和(hé)_after_run方法即可(kě),例如(rú):
namespace Home\Controller\Index;use Think\Controller;class index extends Controller{public function _before_run(){echo 'before_'.ACTION_NAME;}public function run(){echo '執行(xíng)Index控制(zhì)器(qì¶¶γ)的(de)index操作(zuò)';}public function _after_run(){echo 'after_'.ACTION_NAME;}}
操作(zuò)方法綁定到(dào)類後,一(yī)樣可( ↑kě)以支持空(kōng)控制(zhì)器(q♣ ∑≤ì),我們可(kě)以創建 Application/Home/Con••שtroller/_empty目錄,即表示如(rú)果找不(bù)到(dào)當前的(de)α₽控制(zhì)器(qì)的(de)話(huà),會(huì)到(d±×☆ào)_empty控制(zhì)器(qì)目錄下(∏✔xià)面定位操作(zuò)方法。
例如(rú),我們訪問(wèn)了(le)URL地(dì)址 http://serverName/Home/Test/ind™'≤ex,但(dàn)并不(bù)存在 Application/Home/Controller/Tesγ₹t目錄,但(dàn)是(shì)有(yǒu)定義 Application/Home/Controller/Ωλδ<_empty目錄。
并且我們有(yǒu)定義:
Application/Home/Controller/_empty/index.class.php
控制(zhì)器(qì)定義如(rú)下(xià):
namespace Home\Controller\_empty;use Think\Controller;class index extends Controller{public function run(){echo '執行(xíng)'CONTROLLER_NAME.'控制(zhì)器(qì)的(de)'.ACTION_NAME.'操作(zuò)';}}
訪問(wèn)http://serverName/Home/Test/¶π₽index後 輸出結果顯示:
執行(xíng)Test控制(zhì)器(qì)的(de)index操作(zuò)
操作(zuò)綁定到(dào)類後,我們依然可(kě)以實現(x§₽§iàn)空(kōng)操作(zuò)方法,我們隻要(yào)定義一(yī×γ)個(gè) Home\Controller\Inde Ωx\_empty類,就(jiù)可(kě)以支持Index控制(≥✔★Ωzhì)器(qì)的(de)空(kōng)操作(zuò)訪問(wè©↓♠n),例如(rú): 控制(zhì)器(qì)定義如(rú)下(xià):>§
namespace Home\Controller\Index;use Think\Controller;class _empty extends Controller{public function run(){echo '執行(xíng)Index控制(zhì)₹∏器(qì)的(de)'.ACTION_NAME.'操作(zuò)';}}
當我們訪問(wèn)http://serverName/Home/Index/™β™∞test後 輸出結果顯示:
執行(xíng)Index控制(zhì)器(qì)的(de)test操作(zuò)
