如何理解以及正确的使用service provider?

service provider 的概念是向Ioc容器注册特定的服务,当需要某个服务的时候可以直接从Ioc容器中获取服务实例使用。

比起使用命名空间,service provider 的优势是什么?

是依赖注入么?根据自己在laravel 5上的实验,使用use app/Repositories 这种命名空间方式,laravel 5同样可以实现对于方法的依赖注入。

想到一点优势是服务代理与服务实例分离,当想要替换服务实现的时候,可以简单的通过ServiceProvider 进行修改,而不用像命名空间一样每个文件一一替换。
还有可以依据参数动态绑定服务实现。

除了以上两点以外,service provider 还有哪些优势?应该在什么样的需求下使用service provider?

3ks
已邀请:

要回复问题请先登录注册