我在哪里将Symfony中的类既不是控制器也不是模型?

时间:2011-09-06 22:17:09

标签: php model-view-controller symfony

对于我的应用程序包,我需要一些既不是控制器也不是模型的类。例如,我希望有一个scorecard类,其成员包括“技能”,“效率”,“美丽”等。此外,它可能有成员方法/ getters,如“meanScore”。

这样的课程将在Symfony框架中的哪个位置?

3 个答案:

答案 0 :(得分:8)

我同意@Gordon这听起来像是一个商业对象。但如果您确定不是,那么下一步就是弄清楚如何对其进行分类。它是帮助者吗?一个事件监听器?实用类?一旦你明白了这一点,问问自己:它是否特定于一个捆绑,或者你是否会在项目中重复使用它?

假设您认为它是一个事件监听器并且属于该捆绑包。把它放在MyBundle/EventListener中。如果它是帮助者,请将其放在MyBundle/Helper中。现在,如果你计划重复使用amonst项目(在这种情况下它实际上听起来不像它,但是请耐心等待......)你可能最好在vendor中为它创建一个位置。

要记住的重要一点是,因为Symfony2如此年轻,所以没有真正明确的最佳实践列表来回答这些问题。现在,我们有责任看看哪些有效,哪些无效。这就像狂野的西部:)

答案 1 :(得分:3)

我自己回答这些问题的方法是去KnpBundles并检查其他开发者是如何做的。

另一件需要注意的事情是,Symfony2在配置方面完全取决于选择的自由。只要正确设置,您就可以将所有Symfony2内核关注的所有内容都放在Random文件夹中。好吧,这可能会让它变得极端,但例如ListenerEventListener - 没有区别。

现在,如果您问我,我会对Scorecard说出来 - 取决于您要使用它的地方,ServiceHelper/Util

关于breadcrumb - 似乎是树枝扩展的一个很好的例子。

答案 2 :(得分:2)

由于此类显然代表域中的业务对象,因此它属于Model。