我已经编写了自己的日志记录类,并将其定义为服务并放置在AppBundle\Services名称空间中。当我想要记录一些东西时,我可以很容易地在控制器中访问它,但是从其他服务访问它呢?
我必须将日志记录服务作为依赖注入传递,但如果我定义了100多个服务(服务、模块、事件侦听器等),每个服务都有自己的依赖关系,该怎么办?这会造成一片混乱。
我也一直在考虑扩展一些定义日志服务的核心服务,但我的所有服务、模块、事件侦听器都必须扩展一个核心类。
解决这个问题的最佳方法是什么?
发布于 2016-07-05 02:06:51
可能一个好的方法是重新考虑责任,以避免创建太多的服务。
关于使用服务本身的事实,我认为在应用程序生命周期中重用尽可能多的服务是没有问题的。实际上,symfony将处理实例化,您将只将其作为服务来完成。
另一种方法是为所有核心对象创建基类,让这些基类处理日志服务,最终类将以隐式方式记录日志。这不会节省服务调用,但几乎会让您手动处理它。
如果你认为你会在几个项目中使用你的日志功能,那么我建议你移动到供应商文件夹,并将其用作外部模块,通过composer同步到你的github帐户。它就像你自己的第三方产品。
如果你不是symfony的朋友,那么你可以通过自动加载来创建自己的单例模式,但我认为你应该利用强大的symfony服务结构。
https://stackoverflow.com/questions/34902913
复制相似问题