Laravel 服务提供者的主要作用是什么
网上查询后发现很多文章都只是在说服务提供者怎么怎么使用的,但是基本没说服务提供者是干什么用的,有什么好处。
在应用中直接创建一个类,不用通过服务提供者进行注册,这个类就可以直接在控制器中进行注入使用了。
那么服务提供者具体作用是什么?直接创建一个类就可以在控制器注入使用为什么还要配置服务提供者这么麻烦。
那么使用服务提供者究竟有什么好处呢
关于 LearnKu
我以前也一直不理解注入到底有啥用,new 一个类跟 app() 一个类有啥区别,,,
后来我是这样理解的:
直接放一个普通的类,就能注入了,不需要注册,,,那你要替换服务呢?还不是要修改那个注入类的类名,,,如果你很多地方都用到了这个类的注入,,,是不是要修改很多地方,,,但是,如果你类型提示是一个接口,,,然后在服务提供者里,为该接口绑定一个实现,,,以后要换的时候,就只要到服务提供者里改一下就行了。。
还有,,比如你业务逻辑 A 类的构造方法里,注入了一个 B类,来从第三方服务获取数据,,,然后你写测试的时候,不可能真的去掉第三方接口吧,你只想测试你 A 类的业务逻辑,,,这时候在测试前,可以重新给 B类 注册另一个实现,直接返回一个伪造的正确数据,,如果你想测试掉第三方失败时的业务逻辑,就绑定一个返回伪造的错误数据的实现,,
当然,如果你说我不写测试,而且可以全局搜索替换,当我上面没说