【问题标题】:How to structure correctly a Symfony2 controller - deal with huge classes如何正确构建 Symfony2 控制器 - 处理庞大的类
【发布时间】:2013-07-23 07:43:56
【问题描述】:

我有一个现有的 PHP 项目,我必须转移到 Symfony 上。 我正在使用 symfony 6 个月,发现它非常好用。

不过,我有一个问题:

在旧代码中,我有一些大约 6000 个的大类:| 现在,在新项目中,我有我的控制器,一切都应该完成(包括 2 或 3 类 6000 行)。

symfony 的最佳实践是什么,为每个巨大的类创建另一个包并在控制器中调用 2 或 3 个包的功能,或者其他什么?

【问题讨论】:

  • 我知道 6000 行的类是一个非常糟糕的做法,但我正在处理现有代码,所以我将不得不处理。

标签: php symfony bundle


【解决方案1】:

阅读更多关于 Symfony 的内容,答案可能会马上到位,尤其是 Services http://symfony.com/doc/current/book/service_container.html

编辑

查看代码并在逻辑上对其进行划分。我不知道控制器做了什么,但它很可能作为一类有效——但这不太可能。查看班级并决定如何最好地拆分班级。

首先将其作为图表或在纸上进行!首先在代码中执行此操作需要更长的时间,并且当您第一次不可避免地犯错误时更难修复。

【讨论】:

  • 感谢您的建议。我知道 Symfony2 服务。因此,您的想法将是使用服务。但是,每个大类一个服务,所以在 hte endm 有几个服务,甚至是那些大类,将它们分成更小的服务,最后有 10、20 或 30 个服务。
  • 再次感谢@jakenoble。事实上,代码当然可以分成更小的代码和平。正如我所提到的,有一些巨大的类在做所有事情,它们里面都有 5 个甚至更多的方法。因此,最终的想法是将这些类分成几个小类,然后为每个小类创建一个服务。
  • 还有一件事:我应该在同一个包中创建所有这些服务还是将它们分成多个包?
  • 这取决于它们将来是否可以作为其他项目的单独组件使用。
  • 可能不会,代码暂时在本地使用。所以,最好把所有东西都放在同一个包里,对吧?还有一个问题(很抱歉打扰您),所有这些服务类应该放在哪里?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-02-25
  • 2019-12-31
  • 1970-01-01
  • 1970-01-01
  • 2016-11-16
  • 1970-01-01
相关资源
最近更新 更多