当用到一个模块的时候,传统方法:
public function index(){
...
$module=new module($config);
...
}
在这里每次new的时候都需要传入一个$config,这还是不非常复杂的情况,实际上很多类的实例化过程是非常麻烦的。如果很多的地方都需要用到这个模块,每次都要传入一个$config的时候,就对将来的更改与维护构成了威胁。
回头再看laravel的服务提供者,只需要在serviceProvider里提供一套实例化方案,便可以注入到任何你能用得到的地方。
所以,laravel这样做的一个重大意义就在于,它可以为你的类库提供一套可以重用的实例化方案。