簡體   English   中英

如何在Laravel中避免HMVC設計模式?

[英]How do I avoid HMVC design pattern in Laravel?

所以,我一直在泰勒 Otwell通讀從學徒到技工 ,Laravel作者

我遇到了這個“口頭禪”: HMVC通常表示設計不佳

這是真的...

泰勒也建議

是否需要從其他控制器調用控制器? 這通常表示不良的應用程序設計和控制器中過多的業務邏輯。 將邏輯提取到可以注入任何控制器的第三類中。

而且我似乎還沒有找到這樣的方法。

如何避免HMVC並將邏輯提取到可以注入任何控制器的第三類?

我想出了一種巧妙的方法來完成它,這似乎幫助我加快了工作流程...

我認為我做出的這種選擇可以代替HMVC,以及使用控制器的常規方式...因為現在控制器不過是注入我們所謂的“馬達”的地方。

coderwall上查看我的文章, 了解整個過程。

通讀它,並希望它會提供一種更好的處理方法,從模型開始直到控制器完成。

但是,如果您希望以自己的方式進行操作,請確保如Taylor所建議的那樣,通過注射更加共享地共享兩個控件之間需要共享的內容。

例如,您在AdminsController ,您感覺需要從UsersController調用一個動作,只需將該動作及其同級變成第三類,並在AdminsController

//AdminsController

 use ThirdClass;

public function __construct(ThirdClass $mything)
{
    $this->myThirdClass = $mything;
}

public function mySharedAction()
{
    $this->myThirdClass->mySharedActionFromUsersController();
}

就像這樣

更新資料

如果您在coderwall上瀏覽了我上面提到的那篇文章,那么我做了一個小程序包,其中生成了所有提到的組件。

github上查看

暫無
暫無

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

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