截图中的类Cashier是一个Service Container。简单地说,如果直接new Config($config),那么实例化Cashier的时候,就必然会创建Config实例,不管有没有用到。使用闭包,只是赋予了获取依赖(即Config实例)的方法,这样只有在需要用到的时候,才会调用进行实例化。 关于使用闭包来处理依赖注入的实践,可以参考这篇文章:http://fabien.potencier.org/o...。
截图中的类
Cashier
是一个Service Container。简单地说,如果直接new Config($config)
,那么实例化Cashier
的时候,就必然会创建Config
实例,不管有没有用到。使用闭包,只是赋予了获取依赖(即Config
实例)的方法,这样只有在需要用到的时候,才会调用进行实例化。关于使用闭包来处理依赖注入的实践,可以参考这篇文章:http://fabien.potencier.org/o...。