2017-12-14 6 views
4

大きなアプリケーションでは、私は多くのサービスを提供しています。私は、サービスの公開使用を廃止したいのSymfony 3.4/4にサービスの一般的な使用を控える

$container->get('service.id'); 

Transistioning:私たちは、コントローラに公共および使用されるほとんどのサービスを持っているのSymfony 2.xのを使用します。多くのお客様がこのサービスを直接使用しているため、私はそれらを公開しなければなりません。

しかし、私はこのサービスの一般的な使用を「廃止予定」にしたいと考えています。

私は既にSymfony(http://symfony.com/blog/new-in-symfony-2-8-deprecated-service-definitions)のサービス定義を非推奨にする方法を知っています。

私はを非難することができますどういうわけか?

答えて

1

サービス定義上で属性をtrueに設定することで、「プライベートにしたい」サービスを作成できます。

YAML:public: true, private: true
PHP:$definition->setPublic(true)->setPrivate(true);

代わりにそれを注入するコンテナからサービスを取得するとき、あなたが本当にpublic: false後にあなたのサービスを作ることができるように、非推奨の通知をトリガします。

+0

ニース。まさに私が探していたもの。 私はコンテナ自体をデコレートし、廃止予定の通知を投げかけました。 これは良い方法です。 それは意図的ですか?この文書は見つかりませんでした。 – psren

+0

symfonyコアの内部で、https://github.com/symfony/symfony/pull/24104で紹介されています。 Btw、有用な答えをupvotingを検討してください:) – chalasr

関連する問題