簡體   English   中英

在Laravel中,我們應該使用Event來減少控制器依賴性嗎?

[英]In Laravel, should we use Event to reduce controller dependency?

假設我們要實現一個Facebook Like按鈕,在后端,通過此簡單操作可能會發生很多事情。 例如: crawl pageextract page datastore page infoassociate with user等...

在為每個步驟創建模塊(庫+存儲庫)之后,我們需要將它們放到控制器中。 為每個模塊創建控制器比將所有模塊注入單個控制器會更好嗎?

為了說明代碼, A是否比B更可維護

A:

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數量的好方法(還可以防止控制器變胖)。

Laravel中的控制器旨在為您的Web應用程序提供終結點,並提供一些基本功能。 您不應該在兩個控制器之間進行通信-將代碼抽象到控制器可以簡單調用的單獨的類中。 這樣,您的控制器就可以保持分離狀態,並專注於各自路由的意圖,但仍可以調用所需的復雜域級別功能,而不會影響通信。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM