对于我的应用程序包,我需要一些既不是控制器也不是模型的类。例如,我希望有一个scorecard
类,其成员包括“技能”,“效率”,“美丽”等。此外,它可能有成员方法/ getters,如“meanScore”。
这样的课程将在Symfony框架中的哪个位置?
答案 0 :(得分:8)
我同意@Gordon这听起来像是一个商业对象。但如果您确定不是,那么下一步就是弄清楚如何对其进行分类。它是帮助者吗?一个事件监听器?实用类?一旦你明白了这一点,问问自己:它是否特定于一个捆绑,或者你是否会在项目中重复使用它?
假设您认为它是一个事件监听器并且属于该捆绑包。把它放在MyBundle/EventListener
中。如果它是帮助者,请将其放在MyBundle/Helper
中。现在,如果你计划重复使用amonst项目(在这种情况下它实际上听起来不像它,但是请耐心等待......)你可能最好在vendor
中为它创建一个位置。
要记住的重要一点是,因为Symfony2如此年轻,所以没有真正明确的最佳实践列表来回答这些问题。现在,我们有责任看看哪些有效,哪些无效。这就像狂野的西部:)
答案 1 :(得分:3)
我自己回答这些问题的方法是去KnpBundles并检查其他开发者是如何做的。
另一件需要注意的事情是,Symfony2在配置方面完全取决于选择的自由。只要正确设置,您就可以将所有Symfony2内核关注的所有内容都放在Random
文件夹中。好吧,这可能会让它变得极端,但例如Listener
或EventListener
- 没有区别。
现在,如果您问我,我会对Scorecard
说出来 - 取决于您要使用它的地方,Service
或Helper/Util
关于breadcrumb
- 似乎是树枝扩展的一个很好的例子。
答案 2 :(得分:2)
由于此类显然代表域中的业务对象,因此它属于Model。