繁体   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