在疙瘩1.0我曾經是能夠分享類的實例是這樣的:疙瘩DI分享折舊。怎麼辦?
$app['some_service'] = $app->share(function() {
return new Service();
});
現在,這似乎是過時,我無法找到是什麼這樣做的新途徑。
在疙瘩1.0我曾經是能夠分享類的實例是這樣的:疙瘩DI分享折舊。怎麼辦?
$app['some_service'] = $app->share(function() {
return new Service();
});
現在,這似乎是過時,我無法找到是什麼這樣做的新途徑。
在疙瘩1.0(捷希凱1),這樣做:
$app['shared_service'] = $app->share(function() {
return new Service();
});
$app['non_shared_service'] = function() {
return new Service();
};
在疙瘩3.0(捷希凱2)執行此操作(這是相對!):
$app['shared_service'] = function() {
return new Service();
};
$app['non_shared_service'] = $app->factory(function() {
return new Service();
});
默認情況下,疙瘩3.0(Silex 2.0使用的)默認情況下始終返回服務的相同實例。如果你不想要這種行爲,你需要明確說明並使用工廠函數。
所依賴的疙瘩版!
在疙瘩1.0
$container['shared'] = $container->shared(function(){
return new Class();
});
$container['non_shared'] = function() {
return new Class();
};
在疙瘩3.0
$container['shared'] = function() {
return new Class();
};
$container['non_shared'] = $container->factory(function() {
return new Class();
});
記憶,當你創建一個共享服務,他們回來也不會改變什麼。當您創建非共享服務時,每次使用時,Pimple都會爲您提供一個新的服務實例。
看起來像http://pimple.sensiolabs.org/上記錄的容器系統 – ceejayoz