2
假設我們要實現一個Facebook Like
按鈕,在後端,這個簡單的動作可能會發生很多事情。例如:crawl page
,extract page data
,store page info
,associate with user
等等在Laravel中,我們應該使用Event來減少控制器依賴性嗎?
創建的每個步驟的模塊(庫+庫)後,我們需要把它們放在一起的控制器。爲每個模塊創建控制器會比在單個控制器中注入所有控制器更好嗎?
爲了說明在代碼中,比B更容易維護?
答:
controllers/
like.php
crawler.php
extract.php
...
//and in like.php
$page = Event::fire('page.crawler', $url);
...
$result = Event::fire('page.extract', $data);
...
//in crawler.php
use Lib/CrawlInterface;
function __construct (CrawlInterface $crawl)
//in extract.php
use Lib/ExtractInterface;
function __construct (ExtractInterface $extract)
...
B:
controllers/
like.php
//and in like.php
use Lib/CrawlInterface;
use Lib/ExtractInterface;
use ...
function __construct (CrawlInterface $crawl, ExtractInterface $extract, ...)
顯然,這不是一個黑&白的問題,但我想知道Event
是否應該使用這種方式,因爲它似乎是減少每個控制器上DI數量的好方法(也可以防止控制器變胖)。
感謝您將端點提及到專屬控制器中。儘管我希望聽到有關事件的消息 –