在Laravel,什么是单一动作控制器的优势在哪里?

问题描述 投票:1回答:2

关于单动作控制器的话题是laravel文档中:

https://laravel.com/docs/5.5/controllers#single-action-controllers

我的问题是,什么是在那里你会使用这个控制器使用情况?你将如何构建你自己的控制器,如果你选择使用单个动作控制器,用于所有的控制器?

laravel
2个回答
2
投票

Michale Dyrynda似乎总结了单动作控制器的目的,在他qazxsw POI:qazxsw POI

结论

  • 单动作控制器都包裹起来简单的功能集成到明确名称类的有效途径。
  • 他们可以在你不服从一个RESTful方法情况下使用;要小心,不要跨多个控制器的单一实体分隔多个动作。
  • 凡之前可能已经用于多种静态页面一个控制器,你可以考虑为每个静态页面单独命名的控制器。
  • 您可以添加其他的方法来这个班,但他们应该进行相关的单个动作此控制器负责。

他还指出,应该只使用这些时,你只需要一个实体的一个动作:

您可以考虑命名控制器blog作为被明确有关控制器的意图,但我会建议使用这种方法谨慎的方式;如果你开始看到https://dyrynda.com.au/blog/single-action-controllers-in-laravelShowPostShowPost等控制器爬行到你的代码,我会重新考虑RESTful方法。多个控制器从来没有伤害任何人,但我们应该是聪明的,当这做什么!


0
投票

这是一个有趣的问题,我的答案是不相关的laravel,但对单VS每个控制器多个动作。

我发现试图找到这是新模式的使用情况时,是要求反的问题,在这种情况下,当每个控制器有意义多个动作的使用情况?

答案通常涉及到:

您必须具有CRUD操作(因为你使用SQL)和它的方便,将所有在一个地方涉及到该对象的东西的对象。

这类似于的回答“我有一把锤子,那么一切都是螺丝钉”,如果您的域名是作为一个薄层在CRUD数据库一样简单,然后就是用例每个控制器多个动作。

我发现的是,任何复杂量炸毁控制器,不管你的模型有多好。原因是CRUD opperations相距模型的,不是你的控制器。

我们通常认为,我们将很好地映射到我们的控制器中的CRUD模型,也有在那个惊人的工作,许多前端框架,直到....

看看应用程序,用户最常见的方面。在设置您将有用户,我不知道会看该网页除了管理员谁的指标,他们usualy需要额外的信息。所以对于指数的动作,你需要管理员自定义验证。

然后创造,那么,它没有意义有一个用户创建了一个用户,你需要确保用户不认证。

现在我们谈读书。哪些数据管理员,其他用户,当前用户,匿名用户可以看到的是massivily不同的充,并在复杂性会慢慢建立。

然后删除,这通常是罕见的行动,并在不需要某些机型上,但是你还是把它起来,因为,你也有一把锤子。

更新,你把密码更新在这里吗?如果用户忘记密码存在?你把在这里?不,你犯了一个所谓的新动作忘记密码。那么现在你需要更新密码的动作。善有善报,在更新通常是地狱的一年后,一个巨大的烂摊子。

每个模式都有其优点和缺点,我一般建议是每个控制器做多动作时,你的系统是真实地CRUD否则你就不必维护项目一年多。如果您有复杂性,将不得不维持的任何款项,避免了模型泄漏到控制器,并让他们独立。

© www.soinside.com 2019 - 2024. All rights reserved.