ホームページ > 開発ツール > PHPstorm > phpStorm を使用してコードをリファクタリングする方法

phpStorm を使用してコードをリファクタリングする方法

(*-*)浩
リリース: 2020-01-13 15:53:11
オリジナル
4957 人が閲覧しました

phpStorm を使用してコードをリファクタリングする方法

コードのリファクタリングは、ソフトウェアの構築と保守の重要な側面です。

コードを手動でリファクタリングする場合、古いコードを使用するか新しいコードを作成するかに関係なく、メソッドの名前を変更するときにコードを使用するのを忘れるなどの間違いが発生しやすくなります。これが、私が PhpStorm のリファクタリング機能を定期的に使用したい理由です。 (推奨学習: phpstorm)

この用語を初めて聞いた場合、Martin Fowler はリファクタリングを次のように説明しています:

重构是一种用于改进现有代码库设计的受控技术。它的本质是应用一系列小的行为保留转换,每个转换“都太小,不值得做 ”。但是,每个转换的累积效果都非常显着。通过分步进行,可以降低引入错误的风险。您还可以避免在进行重组时损坏系统,这使您可以在较长的时间内逐步重构系统。
ログイン後にコピー

リファクタリングには、移動、抽出、コピー、削除、名前変更など、さまざまな手法が含まれます。これらは、時間の経過とともにコードに加えられる可能性のあるあらゆる種類の変更をカバーします。

幸いなことに、PhpStorm のリファクタリング機能 (コア パッケージに含まれています) は、これらの機能をすべてサポートしています。このチュートリアルでは、それらのいくつかを段階的に説明します。特別:

コードを新しいメソッドに抽出します

関数の名前を変更します

関数のシグネチャを変更します

コードを新しいメソッドに抽出します Method

コードを新しいメソッドに抽出することは、私がほとんど (そしておそらく他の何よりも) リファクタリングを行っていることです。長い関数を、より小さく、再利用可能で、よりテストしやすい一連の関数に分割することで、より適切に整理できるのに遭遇した回数は数え切れません。

次の関数を例として取り上げます。

public function populate($data)
{
    if (is_array($data) && empty($data)) {
        throw new HydrationException();
    }

    $this->id = $data['id'];
    $this->userId = $data['userId'];
    $this->entry = $data['entry'];
    $this->created = $data['created'];
    $this->updated = $data['updated'];
}
ログイン後にコピー

小さいですが、この例では十分です。関数の最後の 5 行がクラスの他の部分で必要であるか、別の関数で使用した方がよいとします。

私たちがやりたいのは、それらを別のメソッドに抽出することです。これを行うには、まず抽出したい行を強調表示し、「リファクタリング -> 抽出 -> メソッド」をクリックします。これにより、以下に示すように、一連のデフォルト オプションが事前に設定された [抽出方法] ダイアログ ボックスが表示されます。

phpStorm を使用してコードをリファクタリングする方法私たちがしなければならないことは、メソッドの名前を入力することだけです。残りのオプションは、適切なデフォルトのセットであるため、そのままにしておくことができます。ただし、もう 1 つ行ったのは、唯一のパラメーター

$data
ログイン後にコピー

に型ヒントを指定することでした。これにより、機能がより明確になり、生成された PhpDoc ブロックにもその情報が含まれます。 「リファクタリング」をクリックすると、新しいメソッドが生成され、強調表示されたコードがその呼び出しに置き換えられます。これを次に示します。

rree

以上がphpStorm を使用してコードをリファクタリングする方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート