PhpStorm 2026.1 Help

サービスコンテナー

Symfony アプリケーションは、 サービスと呼ばれる複数のオブジェクトで構成されています。 セッションDoctrineFileSystem などの一部のサービスは、開発プラットフォームとして Symfony を使用する場合に固有のものです。 その他のオブジェクトは、開発中のアプリケーションに固有のものです。 Symfony サービスコンテナー(英語)は、これらのオブジェクトのインスタンス化、整理、取得を支援します。 また、アプリケーションが使用できる動作や特定の値を設定するパラメーターのコレクションも保持します。

Symfony サポート(英語)プラグインは、Symfony サービスコンテナーに登録されているサービスとパラメーターのコード補完とナビゲーションを提供し、新しいサービスの登録を支援します。

Symfony サービス用のコード補完

エディターで Ctrl+Space を押すと、次のいずれかに対してコード補完が呼び出されます。

  • サービスコンテナーから登録済みのサービスを取得します。

    symfony のサービス名補完
  • インスタンス化されたサービスのメソッド名を補完させます。

    symfony のサービスメソッドの完成
  • サービスコンテナーから登録されたパラメーターを取得します。

    symfony のサービスパラメーターの完成

サービスのコードナビゲーション

サービスの宣言に移動するには、その使用箇所にキャレットを置き、 Ctrl+B を押します。 または、 Ctrl+Click を使用します。

Symfony のサービス名宣言への移動

宣言へナビゲート コマンドを使用すると、サービスの実装とそれが登録されているルート間を移動することもできます。 例: Filesystem クラスからクラスが登録されている services.xml ファイルに移動することができます。 そこから、サービスの登録済み実装またはその使用箇所に戻ることができます。

Symfony サービスの実装と宣言の間を行き来する

サービス用コードインスペクション

Symfony サポートプラグインは、 サービス登録のエラーを検出するための多数のインスペクションを提供します。

Symfony サービス用のコードインスペクション

サービスの登録

サービスは通常、 YAML または XML​形式 構成ファイルに対応するレコードを追加することによってサービスコンテナーに登録されます。 例: Twig 拡張をサービスコンテナーに登録するには、次のレコードを追加します。

services: blogger_blog.twig.extension: class: Blogger\BlogBundle\DependencyInjection\BloggerBlogExtension tags: - { name: twig.extension }

サービス登録レコードは、最低でもサービスの名前とそれを実装するクラスで構成されます。 さらに、一般に、サービスをインスタンス化するときにサービスコンテナーによって提供されるべきパラメーターのディレクティブが含まれています。

Symfony サポートプラグインは、 YAML または XML​形式 登録の作成を支援する サービスの作成 ツールを提供します。

サービスを登録する

  1. コードエディターを右クリックし、コンテキストメニューから サービスの作成 を選択します。

    symfony の create service コマンド
  2. 開いている サービスジェネレーター ダイアログで、 クラス フィールドにサービスコンテナーに登録するクラスの FQN を入力します。

    Symfony サービスジェネレーターダイアログ

    登録に必要な可能性のあるメソッドのリストが自動的に設定されます。 必要に応じて、 生成する をクリックしてリフレッシュします。

    • サービスの作成時に、サービスコンテナーにクラス内のすべての関数のパラメーターを割り当てることができます。 これは、 行為 チェックボックスを選択または選択解除することで規制されます。

    • サービス 列では、パラメーターにインジェクションするサービスを選択できます。

  3. 対応するオプションを選択して、 YAML または XML​形式 を生成するかどうかを選択します。

  4. クリップボードにコピー​する​ をクリックし、生成されたサービス登録を構成ファイル(たとえば、 services.yml )に貼り付けます。

2026 年 5 月 22 日