PhpStorm 2026.1 Help

ヘルパー関数の作成

Symfony サポート(英語)プラグインは、Symfony クラスおよび関数での使用状況に基づいて、パラメーターの型と戻り値の型を推論します。 これにより、 テンプレートサービスエンティティ翻訳ルートフォーム 、または イベントを引数または戻り値とする独自のコード編集ヘルパー関数を作成できます。

例として、コントローラーで使用できる redirectToRoute 関数を作成しましょう。 この関数は、 コントローラー クラスの redirectgenerateUrl 関数を組み合わせることで、アプリケーション内の既知のルートにユーザを簡単にリダイレクトすることができます。 コードは次のようになります。

protected function redirectToRoute($route) { return $this->redirect($this->generateUrl($route)); }

この関数を呼び出すと、 $route およびのコード補完 Ctrl+Space と、対応する宣言 Ctrl+B に移動する機能が取得されます。

ヘルパー関数での symfony のルート名の補完

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

ヘルパー関数での symfony のレスポンス名の補完

これらの両方が機能する理由は、Symfony Support プラグインが既知の関数の呼び出しと戻り値の型を分析することによって $route の型を推測するためです。 この型分析は、ほとんどの Symfony コンポーネント (テンプレート、サービス、エンティティ、翻訳、ルート、フォーム、イベント) で機能しますが、そのままでは機能しない場合もあります。

独自に作成したコード編集ヘルパー関数やサードパーティ ライブラリから利用しているコード編集ヘルパー関数で補完やナビゲーションが機能しない場合、Symfony Support プラグインには解決策があります。 メソッド パラメーターシグネチャー タイプのプロジェクト設定から、プラグインの一部内部機能にアクセスできます。

メソッドパラメーター

Symfony 固有の関数を使用しない次の関数を考えてみましょう:

/** * Translate route * * @param $route string Route to translate the URL for * @param $locale string Locale to translate into */ protected function translateRoute($route, $locale) { // ... }

この場合、Symfony Support プラグインは、 $route 文字列パラメーターがルート名を保持し、その補完とナビゲーションを提供する必要があることを認識できません。 これは、次のいずれかの手法を使用して修正できます。

メソッド参照

Symfony Support プラグインに私たちのメソッドを伝えるには、 設定 ダイアログ (Ctrl+Alt+S) で PHP | Symfony | メソッド参照 に移動します。 次に、 追加ボタン をクリックして、新しいメソッドパラメーターの登録を追加します。

symfony MethodParameterSetting ダイアログ

以下を提供してください:

  • CallTo: 関数を含むクラスの FQN(先頭の \ を含む)。

  • メソッド: 関数名

  • インデックス: 補完とナビゲーションを行いたいパラメーターのインデックス。

  • プロバイダー: 潜在的なデータの提供者。 ここで、function パラメーターに受け入れたい Symfony コンポーネントを選びます。

  • コントリビューター: (オプション)関数パラメーターが配列であり、配列のキーまたは値の補完が必要な場合は、これらのオプションを使用してそれを指定できます。

  • ContributorData: (オプション)配列値の補完が必要な場合は、ここで補完とナビゲーションを提供するためのキーを入力できます。

変更を適用すると、コード編集ヘルパー関数のパラメーターに対して補完とナビゲーションのサポートが完全に利用できるようになります。 これはプロジェクトレベルの設定なので、 チームと共有できます。

この手法は強力ですが、 ハッシュでヒントを使用すると、ほとんどの状況で操作が簡単になり、プロジェクト設定をチームメンバーと共有する必要がなくなります。

ハッシュ

設定でメソッド パラメーターを構成する代わりに、 PHPDoc を使用して PhpStorm に型ヒントを付与する方法と同様にヒントを使用できます。

関数の PHPDoc ブロックに以下のいずれかを追加することにより、与えられたパラメーターが取るデータの型を指定することができます:

  • #Entity

  • #サービス

  • #FormType

  • #テンプレート

  • #Route

  • #Class

  • #TranslationKey

  • #TranslationDomain

  • #FormOption

  • #Interface

ヒントが追加された関数の例は、次のようになります。 $ route パラメーターの説明の #Route に注意してください。

/** * Translate route * * @param $route string #Route to translate the URL for * @param $locale string Locale to translate into */ protected function translateRoute($route, $locale) { // ... }

Symfony Support プラグインは関数に正しくインデックスを付け、 $route パラメーターの補完とナビゲーションを提供するようになりました。

署名の種類

testIndex 関数でテストを書くテストクラスを考えてみましょう。 このクラスには、Symfony Web アプリケーションに登録されたサービスを模擬するヘルパー関数が付属しています。

use PHPUnit\Framework\MockObject\MockObject; use PHPUnit\Framework\TestCase; class SomeTest extends TestCase { /** * @param $service string #Service to mock * @return MockObject */ protected function getMockService($service) { // ... resolve interface from $service ... $serviceInterface = ''; return $this->getMock($serviceInterface); } function testIndex() { // TODO: our code will go here... } }

getMockService 関数の $service パラメーターに #サービス 型ヒントを追加したため、それを呼び出すと完了とナビゲーションが得られます。

ヘルパー関数での symfony のモック補完

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

ヘルパー関数での symfony のモック補完は利用できません

理想的には、 $mock インスタンスで完了を呼び出すと、この場合は filesystem サービスのすべてのパブリックメンバーが得られます。 mailer サービス名で getMockService を呼び出す場合、 mailer サービスのパブリックメンバーに基づいて補完を提供することが期待されます。

これを実現するには、 設定 ダイアログ (Ctrl+Alt+S) で PHP | Symfony | タイププロバイダ に移動します。 次に、 カスタム署名タイプを有効にする チェックボックスを選択し、 追加ボタン をクリックして、 getMockService 関数に関する情報を追加します。

Symfony のヘルパー関数のカスタム署名を作成する

以下を提供してください:

  • CallTo: 関数を含むクラスの FQN(先頭の \ を含む)。

  • メソッド: 関数名

  • インデックス: 戻り値の型を決定するパラメーターのインデックス。

  • プロバイダー: 潜在的なデータの提供者。 ここが関数によって返される Symfony コンポーネントタイプを選ぶところです。

変更を適用すると、 $mock 変数のコード補完が利用可能になります。

利用可能なヘルパー関数での symfony のモック補完
2026 年 5 月 22 日