簡體   English   中英

Pimple DI股票貶值。 怎么辦?

[英]Pimple DI share depreciated. Now what?

在Pimple 1.0中,我曾經能夠像這樣共享類實例:

$app['some_service'] = $app->share(function () {
    return new Service();
});

現在這似乎已被棄用,我無法找到這樣做的新方法。

在Pimple 1.0(Silex 1)中,你這樣做:

$app['shared_service'] = $app->share(function () {
    return new Service();
});

$app['non_shared_service'] = function () {
    return new Service();
};

在Pimple 3.0(Silex 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();
};

在Pimple 3.0上

$container['shared'] = function() {
    return new Class();
};
$container['non_shared'] = $container->factory(function() {
    return new Class();
});

記住,當您創建共享服務時,他們返回的內容不會更改。 當您創建非共享服務時,每次使用時,Pimple都會為您提供一個新的服務實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM