cap*_*ica 6 php logging symfony symfony-2.3
什么是在symfony2体系结构中记录来自Entity或Repository类的消息或错误的方法?在symfony1中,您可以使用单例来杀死小狗,通过这样做来从任何地方获取记录器:
sfContext::getInstance()->getLogger()
Run Code Online (Sandbox Code Playgroud)
Symfony2的容器模型更加严格,这很好,但是如何从非容器感知类中进行日志记录呢?对于repos,我想你可以将它们(全部)定义为服务,依赖于记录器,然后从那里开始.但是当你有一个Entity类的实例时呢?
从历史上看,我想把日志消息放在类方法中,但现在呢?我应该将记录器(作为参数)传递给想要编写日志消息的每个类方法吗?这看起来有点矫枉过正,但也许这是最好的做法?
或者我看到这个错误,Entities或Repos不应该写日志消息,而是将它们传回控制器来处理?
您可能应该避免将业务逻辑(甚至日志记录)放入实体模型中。
至于存储库,您描述的方式是正确的。