搜尋

首頁  >  問答  >  主體

php - 框架 程式碼復用問題

在用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();
}
为情所困为情所困2762 天前483

全部回覆(1)我來回復

  • 巴扎黑

    巴扎黑2017-05-31 10:36:08

    面向對象吧,基本的增刪改查寫個基類,特殊的再繼承基類覆寫就好了

    回覆
    0
  • 取消回覆