我知道在Pimple容器中,依赖项声明为
$container = new Pimple();
$container['db'] = function (){
return new SomeClass;
}; 我的问题是,如果我只是将依赖关系声明为像这样的简单数组,会怎样呢?
$container = new Pimple();
$container['db'] = new SomeClass; 有什么关系?
发布于 2014-12-31 18:55:49
区别是一种叫做懒惰加载的东西,特别是延迟初始化。
在第一个示例中,在请求SomeClass之前,实际上不会实例化它。在您的第二个示例中,将立即实例化它。因此,即使请求从未命中数据库,也会创建对象并建立连接。
通过使用第一个示例,如果请求从未实际使用数据库,则永远不会建立到数据库的连接。
https://stackoverflow.com/questions/27725000
复制相似问题