2
我們使用CodeIgniter來包裝一些內部函數並將結果顯示在json中。刪除CodeIgniter函數中的重複代碼
偶爾我們的內部函數可能會將調試字符串打印到屏幕上。因此,我們已經開始使用輸出緩衝來捕獲任何調試並將其添加到結果中$data['response']['debug'] = $ob;
這似乎工作得很好,因爲我們已經開始將此代碼放入大多數公開公開的CI函數中。
現在我們似乎在重複這個代碼流。
將「重複」部分提取到通用模板中並在需要時調用的最佳方法是什麼? (不是每個功能都實現這一點 - 只是大部分)。
示例代碼:
public function some_function($var){
ob_start(); //repeated
$this->load->model('some_model');
$result = $this->some_model->do_something($var);
if($result){
$data['response']['result'] = true;
}else{
$data['response']['error'] = 'Something not found.';
}
$ob = ob_get_clean(); //repeated
if($ob!=''){
$data['response']['debug'] = $ob; //repeated
}
$this->load->view('json',$data); //repeated
}
不確定我遵循什麼「我們正在使用CodeIgniter來包裝一些內部功能」的意思,但你可能想看看控制器掛鉤http://ellislab.com/codeigniter/user-guide/general/hooks.html – jmadsen
「內部函數」是指我們的遺留代碼(通常隱藏在公共視圖中)。我們通過json公開了其中的一些。也許你可以擴大你的答案一點點? –