国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

ThinkPHP3.2基礎(chǔ)教程(41)--控制器-操作綁定到類

原創(chuàng) 2016-11-09 13:25:12 2655
摘要:定義ThinkPHP3.2版本提供了把每個(gè)操作方法定位到一個(gè)類的功能,可以讓你的開(kāi)發(fā)工作更細(xì)化,可以設(shè)置參數(shù)ACTION_BIND_CLASS,例如:'ACTION_BIND_CLASS'    =>    True,  設(shè)置后,我們的控制器定義有所改變,以URL訪問(wèn)為 http://server

定義

ThinkPHP3.2版本提供了把每個(gè)操作方法定位到一個(gè)類的功能,可以讓你的開(kāi)發(fā)工作更細(xì)化,可以設(shè)置參數(shù)ACTION_BIND_CLASS,例如:

'ACTION_BIND_CLASS'    =>    True,

  設(shè)置后,我們的控制器定義有所改變,以URL訪問(wèn)為 http://serverName/Home/Index/index為例,

  原來(lái)的控制器文件定義位置為:

Application/Home/Controller/IndexController.class.php

控制器類的定義如下:

namespace Home\Controller;
use Think\Controller;
class IndexController extends Controller{
    public function index(){
        echo '執(zhí)行Index控制器的index操作';
    }
}

可以看到,實(shí)際上我們調(diào)用的是 Home\Controller\IndexController 類的index方法。

設(shè)置后,控制器文件位置改為:

Application/Home/Controller/Index/index.class.php

控制器類的定義如下:

namespace Home\Controller\Index;
use Think\Controller;
class index extends Controller{
    public function run(){
        echo '執(zhí)行Index控制器的index操作';
    }
}

現(xiàn)在,我們調(diào)用的其實(shí)是 Home\Controller\Index\index 類的run方法。

run方法依舊可以支持傳入?yún)?shù)和進(jìn)行Action參數(shù)綁定操作,但不再支持A方法實(shí)例化和R方法遠(yuǎn)程調(diào)用,我們建議R方法不要進(jìn)行當(dāng)前訪問(wèn)控制器的遠(yuǎn)程調(diào)用。

前置和后置操作

當(dāng)設(shè)置操作方法綁定到類后,前置和后置操作的定義有所改變,只需要在類里面定義_before_run和_after_run方法即可,例如:

namespace Home\Controller\Index;
use Think\Controller;
class index extends Controller{
    public function _before_run(){
        echo 'before_'.ACTION_NAME;
    }
    public function run(){
        echo '執(zhí)行Index控制器的index操作';
    }
    public function _after_run(){
        echo 'after_'.ACTION_NAME;
    }
}

空控制器

操作方法綁定到類后,一樣可以支持空控制器,我們可以創(chuàng)建 Application/Home/Controller/_empty目錄,即表示如果找不到當(dāng)前的控制器的話,會(huì)到_empty控制器目錄下面定位操作方法。

例如,我們?cè)L問(wèn)了URL地址 http://serverName/Home/Test/index,但并不存在 Application/Home/Controller/Test目錄,但是有定義 Application/Home/Controller/_empty目錄。

  并且我們有定義:

Application/Home/Controller/_empty/index.class.php

  控制器定義如下:

namespace Home\Controller\_empty;
use Think\Controller;
class index extends Controller{
    public function run(){
        echo '執(zhí)行'CONTROLLER_NAME.'控制器的'.ACTION_NAME.'操作';
    }
}

訪問(wèn)http://serverName/Home/Test/index后 輸出結(jié)果顯示:

執(zhí)行Test控制器的index操作

空操作

操作綁定到類后,我們依然可以實(shí)現(xiàn)空操作方法,我們只要定義一個(gè) Home\Controller\Index\_empty類,就可以支持Index控制器的空操作訪問(wèn),例如: 控制器定義如下:

namespace Home\Controller\Index;
use Think\Controller;
class _empty extends Controller{
    public function run(){
        echo '執(zhí)行Index控制器的'.ACTION_NAME.'操作';
    }
}

當(dāng)我們?cè)L問(wèn)http://serverName/Home/Index/test后 輸出結(jié)果顯示:

執(zhí)行Index控制器的test操作


發(fā)布手記

熱門詞條