从Symfony2中的实体和存储库记录的正确方法

时间:2013-10-06 17:14:47

标签: php symfony logging symfony-2.3

在symfony2架构中记录来自Entity或Repository类的消息或错误的方法是什么?在symfony1中你可以使用单例来杀死小狗,通过这样做来从任何地方获取记录器:

sfContext::getInstance()->getLogger()

Symfony2的容器模型更加严格,这很好,但是如何从非容器感知类中进行日志记录呢?对于repos,我想你可以将它们(全部)定义为服务,依赖于记录器,然后从那里开始。但是当你只有一个实体类的实例时呢?

历史上我想把日志消息放在类方法中,但现在呢?我应该将记录器(作为参数)传递给想要编写日志消息的每个类方法吗?这看起来有点矫枉过正,但也许这是最好的做法?

或者我看到这个错误,Entities或Repos不应该写日志消息,而是将它们传回控制器来处理?

1 个答案:

答案 0 :(得分:2)

您应该避免将业务逻辑(甚至是日志记录)放在实体模型中。

至于存储库,你描述的方式是正确的。