【问题标题】:Order of arguments in Symfony controller with autowiringSymfony 控制器中带有自动装配的参数顺序
【发布时间】:2018-08-23 20:26:30
【问题描述】:

在 Symfony 中使用自动装配并将服务注入控制器时,参数顺序是否有最佳实践?换句话说,注入服务的参数应该在路由参数的参数之前还是之后?

Symfony 文档似乎对此不一致。 In this example,它们显示了在注入服务之前的路由参数。但是,in this example,他们却以相反的方式展示了它。

我倾向于总是先注入服务,所以我可以给路由参数一个默认值:

public function someAction(Request $request, MyService $myService, $id = 0)

另外,这对我来说看起来不对:

public function someAction(Request $request, $id, MyService $myService)

我已经用谷歌搜索并搜索了堆栈溢出,但没有看到任何其他答案。我觉得这有点奇怪,因为我觉得这些事情的一致性很重要(也许我在这里有点过火了,这真的没关系?)

【问题讨论】:

  • 我在某处读到最好的做法是将可选参数放在最后,但为了它,我无法在任何地方找到它。
  • 这并不是最佳实践。 php 要求您在函数的 放置可选参数。一旦遇到可选参数,php 要求所有以下参数都是可选的。

标签: php symfony


【解决方案1】:

没关系,如果您通过注释设置默认值。如果您直接在参数处设置默认值,那么这里只有一种选择 - 将可选参数放在最后。 重要的部分是统一的代码风格。

【讨论】:

  • 对,很明显,带有默认值的参数必须排在最后,统一的代码风格很重要。如果 symfony 对此有最佳实践或首选方式,我的问题更多。
  • 没有找到任何东西,我认为这很简单,因此他们没有在自动装配文档中提及参数的顺序。
猜你喜欢
  • 1970-01-01
  • 2019-01-21
  • 2013-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-06
相关资源
最近更新 更多