在symfony中每个文件有单个/多个动作的pro / con?

时间:2010-04-18 02:05:51

标签: model-view-controller symfony1

与symfony合作了一段时间。大多数教程描述在单个php文件中有多个动作。但是,我发现每个php文件有1个动作更容易维护。

  • 这两者的优点是什么?
  • 这纯粹是代码组织中的开发人员偏好吗?
  • 对这两种方法的任何性能影响?
  • 合理大型生产应用程序的常见做法是什么?

2 个答案:

答案 0 :(得分:2)

作为一名业余的symfony开发人员,我曾与更有经验的symfony开发人员合作,我的印象是,这在很大程度上取决于最适合应用程序的内容以及您对组织代码的偏好。一旦你开始处理一个更复杂的应用程序,这些问题在某种程度上会得到回应,因为你会开始注意到你的项目组织如何影响它的易用性。

在我正在建设的网站上,我有大约20个模块,其中包含:

  • 具有单一动作的模块&模板对
  • 具有为多个模板提供服务的单个操作的模块
  • 具有多个操作服务多个模板的模块

总共可能有40-50个行动。

除了组织与模型相关的代码之外,模块结构对于Symfony配置级联也具有重要意义。因为view.yml,security.yml等布局和配置文件最容易在app&模块级别,良好的结构可以帮助您以简单的方式利用级联。这同样适用于路由规则,具体取决于您在网站上使用这些规则的方式。

我没有足够的洞察力来评论表现 - 也许这里有其他人这样做。我有兴趣自己听听。

答案 1 :(得分:2)

我在一家小商店[3名程序员]工作,我们在不同项目中使用这两种方法,并在同一项目中将它们混合在一起。如果我们正在开发一个项目,需要我们所有3个人在同一个动作上工作,那么每个文件只有一个动作就是处理事情的更好方法[为什么要在不需要时管理svn文件冲突?

我参与了更大的项目一个人,我几乎总是在一个文件中使用多个动作。有了一个好的IDE,它并不重要,因为你可以扩展/折叠你正在处理的动作,我的猜测是性能差异可以忽略不计[我可能错了]。

当您将所有操作都放在一个文件中时,其他一些内容(如preExecute()和共享函数)似乎也会更容易。