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();
});
pimple 3.0 (Silex 2.0 が使用) では、デフォルトで常に同じサービス インスタンスを返すようです。この動作が望ましくない場合は、それについて明示し、ファクトリ関数を使用する必要があります。