【问题标题】:How do I avoid HMVC design pattern in Laravel?如何避免 Laravel 中的 HMVC 设计模式?
【发布时间】:2015-08-03 11:46:28
【问题描述】:

所以我一直在阅读从学徒到工匠 Taylor OtwellLaravel 作者

我发现了这个“口头禅”:HMVC 通常表示设计不佳

这是真的……

Taylor 也提出了建议

觉得需要从其他控制器调用控制器?这往往预示着贫穷 控制器中的应用程序设计和过多的业务逻辑。将逻辑提取为 可以注入任何控制器的第三类。

而且我似乎还没有找到这样的方法..

如何避免 HMVC 并将逻辑提取到可以注入任何控制器的第三类?

【问题讨论】:

    标签: php laravel design-patterns model-view-controller hmvc


    【解决方案1】:

    我想出了一个巧妙的方法,它似乎帮助我加快了工作流程...

    我认为我所做的这个替代方案可以取代 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

    【讨论】:

      猜你喜欢
      • 2012-01-07
      • 2010-10-01
      • 2017-09-13
      • 1970-01-01
      • 1970-01-01
      • 2020-10-15
      • 2015-06-10
      • 2017-02-24
      相关资源
      最近更新 更多