針對17joys控制器的擴充套件

17joys發表於2010-04-14

針對17joys控制器的擴充套件

在我們編寫程式碼的時候,儘量要多考慮一些以後可能會附帶的功能要求,為這些功能留下編寫的餘地,這樣就能增加擴充套件性,我在檢視ThinkPHP原始碼的時候發現,每次控制器初始化的時候都會去呼叫一個_initialize()方法,那我就思考,以後肯定會針對所有的控制器模組定義公共方法,所以我考慮擴充套件Action類,把這些公共方法都放進去,這就產生了CommonAction類。

CommonAction.class.php檔案


class CommonAction extends Action {
	function _initialize(){
		header("Content-Type:text/html; charset=utf-8");
	}
}
?>

之前的IndexAction類檔案修改為


class IndexAction extends CommonAction { //從CommonAction繼續擴充套件繼承
    public function index(){
        $this->display();
    }
}
?>

這樣以後我就可以把更多的功能方法放到CommonAction類中,譬如許可權驗證等操作

【注】:ThinkPHP的Action類原始碼

39
40
41
42
43
44
45
46
public function __construct()
{
    //例項化檢視類
   $this->view       = Think::instance('View');
    //控制器初始化
   if(method_exists($this,'_initialize'))
        $this->_initialize();
}

作者:@ 修訂1.0 2010-03

樂學PHP學院是國內專業的PHP培訓機構,天津最好的PHP培訓機構,擁有完整全面的PHP培訓課程體系,使用自行開發的PHP內容管理系統作為授課案例,真實專案教學,還提供PHP教程、PHP影片、PHP人才、PHP開發等服務!

本文樂學PHP版權所有,未經批准轉載必究。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/23714519/viewspace-1032846/,如需轉載,請註明出處,否則將追究法律責任。

相關文章