ヘルパー関数の作成
Symfony サポート(英語)プラグインは、Symfony クラスおよび関数での使用状況に基づいて、パラメーターの型と戻り値の型を推論します。 これにより、 テンプレート、 サービス、 エンティティ、 翻訳、 ルート、 フォーム 、または イベントを引数または戻り値とする独自のコード編集ヘルパー関数を作成できます。
例として、コントローラーで使用できる redirectToRoute 関数を作成しましょう。 この関数は、 コントローラー クラスの redirect と generateUrl 関数を組み合わせることで、アプリケーション内の既知のルートにユーザを簡単にリダイレクトすることができます。 コードは次のようになります。
この関数を呼び出すと、 $route およびのコード補完 Ctrl+Space と、対応する宣言 Ctrl+B に移動する機能が取得されます。

コード補完と返された $response インスタンスのナビゲーションも利用できます。

これらの両方が機能する理由は、Symfony Support プラグインが既知の関数の呼び出しと戻り値の型を分析することによって $route の型を推測するためです。 この型分析は、ほとんどの Symfony コンポーネント (テンプレート、サービス、エンティティ、翻訳、ルート、フォーム、イベント) で機能しますが、そのままでは機能しない場合もあります。
独自に作成したコード編集ヘルパー関数やサードパーティ ライブラリから利用しているコード編集ヘルパー関数で補完やナビゲーションが機能しない場合、Symfony Support プラグインには解決策があります。 メソッド パラメーターと シグネチャー タイプのプロジェクト設定から、プラグインの一部内部機能にアクセスできます。
メソッドパラメーター
Symfony 固有の関数を使用しない次の関数を考えてみましょう:
この場合、Symfony Support プラグインは、 $route 文字列パラメーターがルート名を保持し、その補完とナビゲーションを提供する必要があることを認識できません。 これは、次のいずれかの手法を使用して修正できます。
メソッド参照
Symfony Support プラグインに私たちのメソッドを伝えるには、 設定 ダイアログ (Ctrl+Alt+S) で に移動します。 次に、 をクリックして、新しいメソッドパラメーターの登録を追加します。

以下を提供してください:
CallTo: 関数を含むクラスの FQN(先頭の
\を含む)。メソッド: 関数名
インデックス: 補完とナビゲーションを行いたいパラメーターのインデックス。
プロバイダー: 潜在的なデータの提供者。 ここで、function パラメーターに受け入れたい Symfony コンポーネントを選びます。
コントリビューター: (オプション)関数パラメーターが配列であり、配列のキーまたは値の補完が必要な場合は、これらのオプションを使用してそれを指定できます。
ContributorData: (オプション)配列値の補完が必要な場合は、ここで補完とナビゲーションを提供するためのキーを入力できます。
変更を適用すると、コード編集ヘルパー関数のパラメーターに対して補完とナビゲーションのサポートが完全に利用できるようになります。 これはプロジェクトレベルの設定なので、 チームと共有できます。
この手法は強力ですが、 ハッシュでヒントを使用すると、ほとんどの状況で操作が簡単になり、プロジェクト設定をチームメンバーと共有する必要がなくなります。
ハッシュ
設定でメソッド パラメーターを構成する代わりに、 PHPDoc を使用して PhpStorm に型ヒントを付与する方法と同様にヒントを使用できます。
関数の PHPDoc ブロックに以下のいずれかを追加することにより、与えられたパラメーターが取るデータの型を指定することができます:
#Entity#サービス#FormType#テンプレート#Route#Class#TranslationKey#TranslationDomain#FormOption#Interface
ヒントが追加された関数の例は、次のようになります。 $ route パラメーターの説明の #Route に注意してください。
Symfony Support プラグインは関数に正しくインデックスを付け、 $route パラメーターの補完とナビゲーションを提供するようになりました。
署名の種類
testIndex 関数でテストを書くテストクラスを考えてみましょう。 このクラスには、Symfony Web アプリケーションに登録されたサービスを模擬するヘルパー関数が付属しています。
getMockService 関数の $service パラメーターに #サービス 型ヒントを追加したため、それを呼び出すと完了とナビゲーションが得られます。

残念ながら、PHPUnit の PHPUnit_Framework_MockObject クラスの補完のみが利用可能です。

理想的には、 $mock インスタンスで完了を呼び出すと、この場合は filesystem サービスのすべてのパブリックメンバーが得られます。 mailer サービス名で getMockService を呼び出す場合、 mailer サービスのパブリックメンバーに基づいて補完を提供することが期待されます。
これを実現するには、 設定 ダイアログ (Ctrl+Alt+S) で に移動します。 次に、 カスタム署名タイプを有効にする チェックボックスを選択し、 をクリックして、
getMockService 関数に関する情報を追加します。

以下を提供してください:
CallTo: 関数を含むクラスの FQN(先頭の
\を含む)。メソッド: 関数名
インデックス: 戻り値の型を決定するパラメーターのインデックス。
プロバイダー: 潜在的なデータの提供者。 ここが関数によって返される Symfony コンポーネントタイプを選ぶところです。
変更を適用すると、 $mock 変数のコード補完が利用可能になります。
