使用CakePHP,我發現我在控制器操作之間複製了一些代碼。我有十幾個操作(屬於各種控制器),都需要運行相同的查詢和相同的10個變量,以便在特定佈局中使用。他們還需要以相同的方式處理任何錯誤並呈現錯誤頁面。CakePHP - 集中控制器邏輯
我知道組件旨在集中控制器之間使用的邏輯,但在我的情況下,此邏輯需要訪問控制器的set()
和render()
方法。對這種情況的建議方法是什麼?
感謝布
使用CakePHP,我發現我在控制器操作之間複製了一些代碼。我有十幾個操作(屬於各種控制器),都需要運行相同的查詢和相同的10個變量,以便在特定佈局中使用。他們還需要以相同的方式處理任何錯誤並呈現錯誤頁面。CakePHP - 集中控制器邏輯
我知道組件旨在集中控制器之間使用的邏輯,但在我的情況下,此邏輯需要訪問控制器的set()
和render()
方法。對這種情況的建議方法是什麼?
感謝布
端了我自己的滾動排序業務邏輯層的就這一個。下面的例子。想法/評論歡迎。
class MyController extends AppController {
public function my_action() {
// The BLL class is specific for this action and gets the entire
// controller so has access to the set() method as well as components.
$this->Bll = new MyActionLogic($this);
$this->Bll->do_whatever();
}
}
把邏輯在你的AppController類控制器應該延長。
即使邏輯僅被我的控制器的一小部分使用? – Brian
你可以有一個擴展AppController的中間類,然後在那裏有你的功能,然後你的控制器將從那個類擴展。例如MyController擴展IntermediateController擴展AppController – kand
是的,除了即使在一個控制器內,只有一個動作可能需要這個功能。如果其他操作需要類似的邏輯,我將無法擴展兩個中間控制器。 – Brian