所以我使用Laravel作爲我的網站,但是我在判斷代碼的結構時遇到了困難,所以我希望對我的結構的有效性提供一些意見。負責分離職責php對於控制器
我當然使用通過控制器路由,請求進來,這是路由到Processor
,這個處理器還接收處理器用來再次路由的監聽器(控制器)。一個例子
class PageController{
public function __construct(PageProcessor $pageProcessor)
{
$this->processor = $pageProcessor;
}
public function edit($id = null)
{
$this->processor->edit($this, $id);
}
public function editFailed($message)
{
return View::make('edit.failed', $message);
}
public function editSucceed($data)
{
return View::make('edit.succeed', $data);
}
}
class PageProcessor{
public function __construct(PageRepository $pageRepository, PageValidator $pageValidator)
{
$this->repository = $pageRepository;
$this->validator = $pageValidator;
}
public function edit($id = null)
{
// logic for showing the edit page
//
// more logic
if($logicSucceeded)
{
return $listener->editSucceed(compact('page', 'awesomeData'));
}
else
{
return $listener->editFailed('something failed');
}
}
}
現在我的問題是與控制器的傳遞到處理器,那種違背職責的分離,但我想不出這樣做的另一種方式。
總結:保持相互糾纏的班級職責的最佳方式是什麼?
怎樣纔可以有一個使用另一個不知道它是如何工作...
在控制器驗證只是看起來像褻瀆,是不是應該是業務邏輯?我的處理器是將驗證和模型結合在一起的處理器,例如創建表格。您可以詳細說明他在控制器中的驗證嗎?> – WiseStrawberry 2014-09-07 17:11:03
已編輯進行詳細說明。 – 2014-09-07 17:33:58
啊....將不得不潛入laravel 4.3下一個項目。 – WiseStrawberry 2014-09-07 17:42:49