我使用的是symfony 3.3,我想知道这些案例的最佳做法是什么:
on render()用于显示模板
- folder:view.html.twig
- folder/view.html.twig
- @folder...
on getRepository()
- 'AppBundle:EntityName'
- Entityname::class
答案 0 :(得分:1)
编辑15-nov-2017 :Symfony最佳做法已更新 - > https://symfony.com/doc/master/best_practices/index.html
使用普通路径(即folder/view.html.twig
)或@
来引用树枝模板。 doc说:
过去,Symfony使用不同的语法来引用模板。这种格式使用冒号(:)来分隔每个模板路径部分,它的一致性较差,性能比Twig语法差。
每次可能时使用::class
表示法。它更自然,更易于维护,书写和阅读。
对于最后一个,它实际上取决于您的上下文,但IMO最好使用存储库类并避免直接在控制器中使用实体管理器。
关于控制器中的依赖注入,doc说:
通常,新的最佳实践是使用普通的构造函数依赖注入(或#34; action"在控制器中注入)而不是通过$ this-> get()获取公共服务(尽管仍然如此)工作)。
答案 1 :(得分:0)
“提取优于抽象”
这就是我选择的原因:
运营商::
定义的类名称,如EntityName :: class
物理路径,例如Folder/view.html
Service locator
模式或深度潜水的依赖。例如:我可以依赖IDE来让我在绝对类名的定义中出错。我可以使用本机函数进行验证和路径转换。
泛化。我总是试图避免除了native之外的域依赖。
这是我的做法,它与伟大的Symfony无关。