Sla*_* II 8 model symfony symfony-2.2
我正在将我的旧代码库移到Symfony 2.2框架中.
在我的旧代码中,我的Article实体有一个方法getUrl(),它返回当前文章的URL.
在Symfony中,我必须使用路由器服务来生成这样的URL.
我无法从实体内部访问路由器,因为它是一种不好的做法,并没有真正支持框架.
我可以使用Twig helper path()从Twig模板本身调用路由器,并提供构造URL所需的所有参数(来自Article实例).但是这种方法不是很好,因为如果我决定更改URL格式规则 - 我将不得不找到所有这些调用并重写它们(不是非常干).
我真的想在这里保存业务逻辑封装,而不是将所有内容都拉到视图层.
我应该如何处理这种情况?
Ste*_*nte 11
ArticleManager在服务层中创建一个类,并在那里处理任何业务逻辑.您可以通过依赖注入将路由器传递给它.
对于您的示例,ArticleManager将有一个getUrl(Article $article)方法可以使用路由器实例(您通过注入__construct或单独的setter方法)根据属性生成Url $article并返回它.
此方法将确保您的业务逻辑不会污染视图或控制器层.
请务必阅读Service Container文档.
| 归档时间: |
|
| 查看次数: |
3022 次 |
| 最近记录: |