シグネチャーの変更
シグネチャーの変更リファクタリングは、関数シグネチャーに適用できるいくつかの異なる変更を組み合わせます。 このリファクタリングを使用して、次のことができます。
関数名と戻り値の型を変更する
パラメーターの追加、削除、並べ替え
パラメーターにデフォルト値を割り当てます
パラメーター名と型を変更する
関数呼び出し階層を介して新しいパラメーターを伝播する
関数のシグネチャーを変更すると、PhpStorm は関数のすべての使用箇所を検索し、変更を反映できるすべての呼び出し、実装、オーバーライドの置き換えを更新します。
シグネチャーの変更 リファクタリングは PHP と JavaScript でのみサポートされています(JavaScript のリファクタリング を参照)。
新しいパラメーターのデフォルト値と伝播
関数に追加された新しいパラメーターごとに、 デフォルト フィールドにデフォルト値(または式)を指定できます。
また、導入したパラメーターを、シグネチャーを変更する関数を呼び出す関数に伝達することもできます。 リファクタリングの結果は、デフォルト値を指定するかどうか、および伝播を使用するかどうかによって異なります。
伝搬: シグネチャーを変更している関数を呼び出す関数には、新しいパラメーターを伝播できます。 そのような場合、一般に、呼び出し関数のシグネチャーはそれに応じて変わります。 ただし、これらの変更は新しいパラメーターに設定されているデフォルト値にも依存します。
デフォルト: 通常、これは関数呼び出しに追加される値です。 新しいパラメーターが呼び出し元の関数に伝達されない場合、そのような関数内の呼び出しでもこの値が使用されます。 伝播が使用される場合、この値は呼び出し元の関数内の関数呼び出しに影響しません。
パラメーターの追加
赤色でハイライトされている
戻る値をクリックします。Alt+Enter を押して {0} ''{1}'' を作成する を選択します。
シグネチャーの変更 ダイアログで、パラメーター設定を調整するか、提案された設定を受け入れます。
リファクタリング をクリックしてください。
関数のシグネチャーを変更する
リファクタリングする関数の名前にキャレットを置きます。
Ctrl+F6 を押す。 または、メインメニューまたはコンテキストメニューから を選択します。 シグネチャーの変更 ダイアログが開きます。

シグネチャーの変更 ダイアログで、必要に応じて関数シグネチャーに必要な変更を加えます。
関数名を変更します。 名前を変更するには、 命名 フィールドのテキストを編集します。
戻り値の型 フィールドの内容を編集して、関数の戻り値の型を変更します。
関数パラメーターを管理します。 パラメーターを設定するには、 パラメーター 領域のテーブルとボタンを使用します。
新しいパラメーターを追加するには、
をクリックし、対応するテーブル行で新しいパラメーターのプロパティを指定します。
コード補完を使用するには、 Ctrl+Space を押します。
関数の署名に影響するパラメーターのデフォルト値を提供するには、次のように パラメーター フィールドを使用します。
$parameterName = 'parameterValue';関数の呼び出しに影響する引数のデフォルト値を提供するには、 デフォルト フィールドを
argumentValueとして使用します。
パラメーターを追加するとき、現在の関数を呼び出す関数に 伝播したい場合があります。
PHP コンテキストでは、 シグネチャーの変更リファクタリングがクラスのコンストラクターから呼び出されると、新しいパラメーターをクラスプロパティとして初期化できます。 これを行うには、 クラスプロパティの作成と初期化 チェックボックスを使用します。
このチェックボックスを選択すると、新しく追加されたパラメーターはフィールドとして初期化されます。 PhpStorm はこのパラメーターと同じ名前のフィールドを作成し、次の代入行を追加します:
$this->parameterName = $parameterName;チェックボックスをオフにすると、初期化せずにパラメーターが追加されます。
新しいプロパティはデフォルトの可視性修飾子で作成されます。この修飾子は コード生成タブの コードスタイルで設定されています。 PHP ページは、 設定 ダイアログ(Ctrl+Alt+S )内にあります。
パラメーターを削除するには、任意の行を選択して
をクリックします。
パラメーターの順序を変更するには、
および
をクリックします。 例: 特定のパラメーターをリストの最初に配置する場合は、そのパラメーターに対応する行のセルのいずれかをクリックし、必要な回数
をクリックします。
パラメーターの型、名前、デフォルト値を変更するには、パラメーターのテーブル(タイプ および パラメーター フィールド)で必要な更新を行います。
現在の関数を呼び出す関数の階層に沿って、新しいメソッドパラメーター(存在する場合)を伝播します。 シグネチャーを変更する関数を呼び出す関数が存在する場合があります。 これらの関数は、順番に他の関数などから呼び出される場合があります。 呼び出し側関数の階層を通じて現在の関数のパラメーターに加えた変更を伝達し、どの呼び出し側関数が影響を受けるべきで、どの呼び出し側関数が影響を受けないかを指定できます。
新しいパラメーターを伝播するには:
パラメーターの伝播 ボタン
をクリックします。
新規パラメーターを伝播するメソッドの選択 ダイアログの左側のペインで、必要なノードを展開し、新しいパラメーターを伝播させたい機能の横にあるチェックボックスを選択します。

必要な機能を選択するのに役立つように、呼び出されている関数と呼び出されている関数のコードがダイアログの右側に表示されます(それぞれ 呼び出し元メソッド と 呼び出し先メソッド ペインにあります)。
左ペインの機能を切り替えると、右ペインのコードもそれに応じて変わります。
OK をクリックしてください。
予想される変更を確認し、リファクタリングの前に調整を行うには、 プレビュー をクリックします。
リファクタリング をクリックしてください。
サンプル
例 1
この例は、同じ シグネチャーの変更リファクタリングを実行する 3 つの異なる方法を示しています。 すべての場合において、 結果() 関数は generateResult () に名前変更され、新しい $b パラメーターがこの関数に追加されています。
例は、リファクタリング設定に応じて、関数呼び出し、呼び出し関数 showResult() およびその他のコードフラグメントがどのように影響を受けるかを示しています。
前 | 後 |
|---|---|
function result($a) {
}
function showResult($a) {
$this->result($a);
}
| 関数名が変更され、新しい
function generateResult($a,$b) {
}
function showResult($a,$b) {
$this->generateResult($a,$b);
}
|
関数の名前が変更され、新しい
function generateResult($a,$b) {
}
function showResult($a) {
$this->generateResult($a,'new_param');
}
| |
関数の名前が変更され、新しい
function generateResult($a,$b) {
}
function showResult($a,$b) {
$this->generateResult($a,$b);
}
|
例 2
この例では、 __construct() メソッドで シグネチャーの変更リファクタリングを呼び出し、新しい $q パラメーターを追加します。 結果は、 クラスプロパティの作成と初期化 チェックボックスが選択されているかどうかによって異なります。 新しいフィールドはデフォルトの可視性修飾子で作成されます。この修飾子は コード生成タブの コードスタイルで設定されています。 PHP ページの 設定 ダイアログ(Ctrl+Alt+S)。
前 | 後 |
|---|---|
class ChangeSignatureNewParam {
function __construct() {
$a = "Constructor in ChangeSignatureNewParam";
print $a;
}
}
| クラスプロパティの作成と初期化 チェックボックスが選択されています:
class ChangeSignatureNewParam {
private $q;
function __construct($q) {
$a = "Constructor in ChangeSignatureNewParam";
print $a;
$this->q = $q;
}
}
|
クラスプロパティの作成と初期化 チェックボックスがオフになります。
class ChangeSignatureNewParam {
function __construct($q) {
$a = "Constructor in ChangeSignatureNewParam";
print $a;
}
}
|
シグネチャーの変更ダイアログ
シグネチャーの変更リファクタリングは、関数シグネチャーに適用できるいくつかの異なる変更を組み合わせます。 このリファクタリングを使用して、次のことができます。
関数名と戻り値の型を変更する
パラメーターの追加、削除、並べ替え
パラメーターにデフォルト値を割り当てます
パラメーター名と型を変更する
関数呼び出し階層を介して新しいパラメーターを伝播する
関数のシグネチャーを変更すると、PhpStorm は関数のすべての使用箇所を検索し、変更を反映できるすべての呼び出し、実装、オーバーライドの置き換えを更新します。
シグネチャーの変更 リファクタリングは PHP と JavaScript でのみサポートされています(JavaScript のリファクタリング を参照)。
項目 | 説明 |
|---|---|
命名 | 関数、メソッド、メソッド仕様の名前。 |
パラメーター | シグネチャー内のパラメーターのリスト。 パラメーター 項目では、パラメーターを使用して以下のアクションを実行することができます。
|