サービスコンテナー
Symfony アプリケーションは、サービスと呼ばれる複数のオブジェクトで構成されています。Session
、Doctrine
、FileSystem
などの一部のサービスは、Symfony を開発プラットフォームとして使用する場合に固有のものです。その他のオブジェクトは開発中のアプリケーションに固有のものである: Symfony サービスコンテナー(英語)はこれらのオブジェクトのインスタンス化、整理、取得に役立ちます: また、アプリケーションが使用できる動作や特定の値を構成できるパラメーターのコレクションも保持する
Symfony のサポート(英語)プラグインは、Symfony サービスコンテナーに登録されているサービスとパラメーターのコード補完とナビゲーションを提供し、新しいサービスの登録を支援します。
Symfony サービス用のコード補完
エディターで Ctrl+Space を押して、次のいずれかの場合にコード補完を呼び出します。
サービスコンテナーから登録済みのサービスを取得します。
インスタンス化されたサービスのメソッド名を補完させます。
サービスコンテナーから登録されたパラメーターを取得します。
サービスのコードナビゲーション
サービスの宣言に移動するには、その使用箇所にキャレットを置き、Ctrl+B を押します。または、Ctrl+Click を使用します。
宣言に移動するコマンドを使用すると、サービスの実装とそれが登録されているルート間を移動することもできます。例: Filesystem
クラスからクラスが登録されている services.xml ファイルに移動することができます。そこから、サービスの登録済み実装またはその使用箇所に戻ることができます。
サービス用コードインスペクション
Symfony サポートプラグインは、サービス登録のエラーを検出するためのインスペクションを多数提供します。
サービスの登録
サービスは通常、YAML または XML 構成ファイルに対応するレコードを追加することによってサービスコンテナーに登録されます。例: Twig 拡張をサービスコンテナーに登録するには、次のレコードを追加します。
サービス登録レコードは、最低でもサービスの名前とそれを実装するクラスで構成されます。さらに、一般に、サービスをインスタンス化するときにサービスコンテナーによって提供されるべきパラメーターのディレクティブが含まれています。
Symfony サポートプラグインは、YAML または XML 登録の作成を支援するサービスの作成ツールを提供します。
サービスを登録する
コードエディターを右クリックし、コンテキストメニューからサービスの作成を選択します。
開いているサービスジェネレーターダイアログで、クラスフィールドにサービスコンテナーに登録するクラスの FQN を入力します。
登録に必要な可能性のあるメソッドのリストが自動的に設定されます。必要に応じて、生成をクリックしてリフレッシュします。
サービスの作成時に、サービスコンテナーにクラス内のすべての関数のパラメーターを割り当てることができます。これは、行為チェックボックスを選択または選択解除することで規制されます。
サービス列では、パラメーターにインジェクションするサービスを選択できます。
対応するオプションを選択して、YAML または XML を生成するかどうかを選択します。
クリップボードにコピーをクリックし、生成されたサービス登録を構成ファイル(たとえば、services.yml)に貼り付けます。