シグネチャーの変更
シグネチャーの変更リファクタリングは、関数シグネチャーに適用できるいくつかの異なる変更を組み合わせます。このリファクタリングを使用して、次のことができます。
関数名と戻り値の型を変更する
パラメーターの追加、削除、並べ替え
パラメーターにデフォルト値を割り当てます
パラメーター名と型を変更する
関数呼び出し階層を介して新しいパラメーターを伝播する
ファンクションシグネチャーを変更すると、PhpStorm は関数のすべての使用箇所を検索し、その変更を反映するように安全に変更できる関数のすべての呼び出し、実装、置き換えを置き換えます。
シグネチャーの変更リファクタリングは、PHP と JavaScript でのみサポートされています (JavaScript のリファクタリングを参照)。
新しいパラメーターのデフォルト値と伝播
関数に追加された新しいパラメーターごとに、デフォルトフィールドにデフォルト値(または式)を指定できます。
また、導入したパラメーターを、シグネチャーを変更する関数を呼び出す関数に伝達することもできます。リファクタリングの結果は、デフォルト値を指定するかどうか、および伝播を使用するかどうかによって異なります。
伝搬 : シグネチャーを変更している関数を呼び出す関数には、新しいパラメーターを伝播できます。そのような場合、一般に、呼び出し関数のシグネチャーはそれに応じて変わります。ただし、これらの変更は新しいパラメーターに設定されているデフォルト値にも依存します。
デフォルト : 通常、これは関数呼び出しに追加される値です。新しいパラメーターが呼び出し元の関数に伝達されない場合、そのような関数内の呼び出しでもこの値が使用されます。伝播が使用される場合、この値は呼び出し元の関数内の関数呼び出しに影響しません。
パラメーターの追加
赤色でハイライトされている
return
値をクリックします。Alt+Enter を押してパラメーター「<パラメーター名>」を作成しますを選択します。
シグネチャーの変更ダイアログで、パラメーター設定を調整するか、提案された設定を受け入れます。
リファクタリングをクリックします。
関数のシグネチャーを変更する
リファクタリングする関数の名前にキャレットを置きます。
Ctrl+F6 を押します。または、メインメニューまたはコンテキストメニューからシグネチャーの変更ダイアログが開きます。
を選択します。シグネチャーの変更ダイアログで、必要に応じて関数シグネチャーに必要な変更を加えます。
関数名を変更します。名前を変更するには、名前フィールドのテキストを編集します。
戻りの型フィールドの内容を編集して、関数の戻り値の型を変更します。
関数パラメーターを管理します。パラメーターを設定するには、パラメーター領域のテーブルとボタンを使用します。
新しいパラメーターを追加するには、
をクリックし、対応するテーブル行で新しいパラメーターのプロパティを指定します。
コード補完を使用するには、Ctrl+Space を押します。
関数の署名に影響するパラメーターのデフォルト値を提供するには、次のようにパラメーターフィールドを使用します。
$parameterName = 'parameterValue';関数の呼び出しに影響する引数のデフォルト値を提供するには、デフォルトフィールドを
argumentValue
として使用します。
パラメーターを追加するとき、現在の関数を呼び出す関数に伝播したい場合があります。
PHP コンテキストでは、シグネチャーの変更リファクタリングがクラスのコンストラクターから呼び出されると、新しいパラメーターをクラスプロパティとして初期化できます。これを行うには、クラスプロパティの作成と初期化チェックボックスを使用します。
このチェックボックスを選択すると、新しく追加されたパラメーターはフィールドとして初期化されます。PhpStorm は、このパラメーターと同じ名前のフィールドを作成し、次のように割り当てられた行を追加します。
$this->parameterName = $parameterName;チェックボックスをオフにすると、初期化せずにパラメーターが追加されます。
新しいプロパティは、デフォルトの可視性修飾子を使用して作成されます。この修飾子は、設定ダイアログ (Ctrl+Alt+S) のコードスタイル: PHP ページのコード生成タブで設定されます。
パラメーターを削除するには、任意の行を選択して
をクリックします。
パラメーターの順序を変更するには、
および
をクリックします。例: 特定のパラメーターをリストの最初に配置する場合は、そのパラメーターに対応する行のセルのいずれかをクリックし、必要な回数
をクリックします。
パラメーターの型、名前、デフォルト値を変更するには、パラメーターのテーブル(タイプおよびパラメーターフィールド)で必要な更新を行います。
現在の関数を呼び出す関数の階層に沿って、新しいメソッドパラメーター(存在する場合)を伝播します。シグネチャーを変更する関数を呼び出す関数が存在する場合があります。これらの関数は、順番に他の関数などから呼び出される場合があります。呼び出し側関数の階層を通じて現在の関数のパラメーターに加えた変更を伝達し、どの呼び出し側関数が影響を受けるべきで、どの呼び出し側関数が影響を受けないかを指定できます。
新しいパラメーターを伝播するには:
パラメーターの伝播ボタン
をクリックします。
新規パラメーターを伝播するメソッドの選択ダイアログの左側のペインで、必要なノードを展開し、新しいパラメーターを伝播させたい機能の横にあるチェックボックスを選択します。
必要な機能を選択するのに役立つように、呼び出されている関数と呼び出されている関数のコードがダイアログの右側に表示されます(それぞれ呼び出し元メソッドと呼び出し先メソッドペインにあります)。
左ペインの機能を切り替えると、右ペインのコードもそれに応じて変わります。
OK をクリックします。
予想される変更を確認し、リファクタリングの前に調整を行うには、プレビューをクリックします。
リファクタリングをクリックします。
サンプル
例 1
この例は、同じシグネチャーの変更リファクタリングを実行する 3 つの異なる方法を示しています。すべての場合において、result()
関数は 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
パラメーターを追加します。結果は、クラスプロパティの作成と初期化チェックボックスが選択されているかどうかによって異なります。新しいフィールドは、デフォルトの可視性修飾子を使用して作成されます。この修飾子は、設定ダイアログ (Ctrl+Alt+S) のコードスタイル: PHP ページのコード生成タブで設定されます。
前 | 後 |
---|---|
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 のリファクタリングを参照)。
項目 | 説明 |
---|---|
名前 | 関数、メソッド、メソッド仕様の名前。 |
パラメーター | シグネチャー内のパラメーターのリスト。パラメーター項目では、パラメーターを使用して以下のアクションを実行することができます。
|
関連ページ:
![](https://resources.jetbrains.com/help/img/idea/2024.1/ws_js_refactoring_rename_file_intention_custom_naming_convention.png)
JavaScript のリファクタリング
リファクタリングとは、アプリケーションの動作を変更せずにソースコードを更新することを意味します。リファクタリングは、コードを安定した dry に保ち、保守を容易にできます。シンボルの移動リファクタリング:PhpStorm を使用すると、ファイルやフォルダーを移動できるだけでなく、JavaScript トップレベルシンボルを移動できます。シンボルの移動リファクタリングは、ES6 モジュールのクラス、関数、変数に対して機能します。クラス、関数、変数を移動する移動するシンボルを選択します。を押すか、コン...
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_changes_diagram.png)
ダイアグラムの使用
ダイアグラムプラグインを有効にするこの機能は、デフォルトで PhpStorm にバンドルされて有効になっているダイアグラムプラグインに依存しています。関連する機能が利用できない場合は、プラグインを無効にしていないことを確認してください。を押して設定を開き、を選択します。インストール済みタブを開き、ダイアグラムプラグインを見つけて、プラグイン名の横にあるチェックボックスを選択します。PhpStorm を使用すると、UML クラスダイアグラムを生成して PHP アプリケーションを分析し、データベース...
![](https://pleiades.io/icons/phpstorm.png)
PHP
このページとこのノードのすべてのページは、PHP プラグインが有効な場合にのみ使用できます。PHP プラグインは PhpStorm にバンドルされており、デフォルトで有効になります。プラグインが無効になっている場合は、プラグインのマッピングの説明に従ってで有効にします。このページを使用して、使用可能な PHP インタープリターの 1 つを選択して、プロジェクトでの PHP 開発および単体テストのサポートを構成します。PHP 言語レベルこのリストでは、コーディング支援を受ける PHP 機能の範囲を指定...
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_basicCodeCompletion-2.png)
コード補完
このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。基本補完:基本コード補完は、可視性スコープ内のクラス、メソッド、キーワードの名前を完成させるのに役立ちます。コード補完を呼び出すと、PhpStorm はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します (提案にはライブテンプレートも含まれます)。基本コード補完がフィールド、パラメーター、変数宣言の一部に適用されている場合、PhpSto...
![](https://resources.jetbrains.com/help/img/idea/2024.1/ps_refactoring_refactor_this.png)
コードリファクタリング
リファクタリングは、新しい機能を作成せずにソースコードを改善するプロセスです。リファクタリングは、コードを安定させ、dry に保ち、保守を容易にできます。リファクタリングの呼び出し:リファクタリングするアイテムを選択します。エディターでプロジェクトツールウィンドウまたは式 / シンボルでファイル / フォルダーを選択できます。選択可能なリファクタリングのリストを開くには、を押します。または、特定のリファクタリング用のキーボードショートカットを使用することもできます。フィールドのカプセル化、st...