在用tp3.3做專案開發時,很多時候增刪改查程式碼基本上一致,尤其是控制器部分.但是每個控制器中都相同的程式碼都需要重複寫一遍.
學習設計模式,這種情況用怎樣的模式可以減少程式碼的重複量.最好用設計模式
舉個例子,做rbac系統:
這個是我的管理員控制器增刪改查的基本代碼,除了構造函數創建的模型類不同,基本增刪改查結構都差不多,怎麼樣能減少重複代碼了.希望高手能指點一下,謝謝.
protected $_model;
public function __construct(){
parent::__construct();
$this->_model=new MannagerModel();
}
/**
* 管理员添加
*/
public function addC(){
if(IS_POST){
$data=I('post.');
$res=$this->_model->Store($data);
$this->redirectUrl($res,'listC');
}
$this->display();
}
/**
* 管理员列表显示
* @return [type] [description]
*/
public function listC(){
$data=$this->_model->lists();
$this->assign('lists',$data);
$this->display();
}
/**
* 管理员删除
* @return [type] [description]
*/
public function delC(){
$id=intval(I('get.id'));
$res=$this->_model->del($id);
//跳转判断函数
$this->redirectUrl($res);
}
/**
* 管理员更新
* @return [type] [description]
*/
public function editC(){
$id=intval(I('get.id'));
//where的数组形式
$where['id']=$id;
// 显示旧数据
$old=$this->_model->lists($where);
$this->assign('old',$old);
//存储新的数据
if(IS_POST){
$data=I('post.');
$res=$this->_model->edit($id,$data);
$this->redirectUrl($res,'listC');
}
$this->display();
}
面向對象吧,基本的增刪改查寫個基類,特殊的再繼承基類覆寫就好了