VS Code で PHP の変数や関数をリネームする方法

PHP での開発を行う際に VS Code を使用されている方も多いのではないでしょうか。 しかしながら、デフォルトの VS Code は PHP のエディタとしては最適化されていません。 VS Code を PHP のエディタとして利用し、かつその性能を十分に発揮させるためには、いくつかの拡張機能が必要になります。

PHP の変数名や関数名を「F2」キーでリネームする

VS Code には「F2」キーを押すことで、 変数名や関数名などの名前を自動で一括リネームしてくれる便利な機能がありますが、 PHP ファイルではこの機能が使用できません。 そこで、VS Code で PHP ファイルでも一括リネーム機能が使用できるようにしてみましょう。 名前を変更するという単純な作業ではありますが、この作業が自動化できれば作業効率がかなり上がります。

「PHP Refactor Tool」拡張機能をインストールする

VS Code で「F2」キーによる PHP ファイルの一括リネーム機能を使用するには、 VS Code に 「PHP Refactor Tool」拡張機能をインストールする必要があります。 VS Code の拡張機能の検索欄から検索してインストールします。

なお、「PHP Refactor Tool」拡張機能は、「PHP Intelephense」拡張機能に依存していますので、 「PHP Intelephense」拡張機能をインストールしていない場合は、「PHP Intelephense」拡張機能も同時にインストールされます。 「PHP Intelephense」拡張機能については、以前「VS Code で PHP の関数一覧を表示する方法」の記事にて紹介していますので、詳しく知りたい方は参考にしてください。

php_refactor_tool.png

「PHP Refactor Tool」拡張機能がインストールできたら、さっそく使用してみましょう。 とはいっても、特に設定などは必要なく、リネームしたい場所で「F2」キーを押してリネームするだけです。 カーソルをあてる場所は変数や関数が定義されている場所である必要はなく、使用されている場所にカーソルをあてている状態でもリネームできます。 リネームの際には、その対象が使用されている箇所が全て自動で一括でリネームされます。 クラス名を変更した場合は、さらにファイル名まで自動でリネームしてくれます。

クラスのプロパティ(フィールド)名を変更した場合は少しだけ特殊で、コマンドの選択肢が表示されます。 この選択肢はクラスのプロパティを変更した際に、そのプロパティに依存している getter、setter メソッドも同時にリネームしますか?ということを聞かれています。 「Update getter name and setter name.」を選択した場合は、そのプロパティの getter、setter のメソッド名も同時にリネームされます。 例えば、$hoge というプロパティの名前を変更したら、同時に getHoge()setHoge() もリネームしてくれるということです。 「Rename the property only.」を選択した場合は、そのプロパティ名のみがリネームされ、getter、setter のメソッド名はリネームされません。 至れり尽くせりで、かなり便利な拡張機能なのではないでしょうか。

php_refactor_tool_command.png

PHP ファイル内の HTML や XML ファイルのタグを「F2」キーでリネームする

PHP は Web システムでよく使用される言語ですので、PHP ファイル内に HTML が記述されていることがあります。 HTML のテンプレートが PHP ファイルに記述されていると言った方がわかりやすいでしょうか。 また、設定ファイルなどに XML ファイルを使用している場合もあるでしょう。 HTML や XML は文法上、開始タグと終了タグをセットで記述しないといけないので、 タグ名を変更したい場合は、開始タグと終了タグの2箇所を修正する必要があります。 その2箇所を修正を1回の修正で行うことができれば、作業効率が少し上がります。 VS Code には「F2」キーを押すことで、HTML のタグを一括でリネームしてくれる機能がありますが、 デフォルトでは HTML ファイルや、JavaScript ファイル(React の JSX)などでしか効きません。

「tag-rename」拡張機能をインストールする

VS Code で「F2」キーによる PHP ファイル内の HTML タグや XML ファイルのタグの一括リネーム機能を使用するには、 VS Code に「tag-rename」拡張機能をインストールする必要があります。 VS Code の拡張機能の検索欄から検索してインストールします。

tag_rename.png

「tag-rename」拡張機能がインストールできたら、さっそく使用してみましょう。 こちらも特に設定などは必要なく、リネームしたいタグの場所で「F2」キーを押してリネームするだけです。 カーソルをあてる場所は開始タグと終了タグのどちらでもかまいません。

「F2」キーを押すのすらメンドウな場合(リアルタイム修正)

個人的には、 PHP の変数名や関数名を変更する際に「F2」キーを押すという操作と同じように、 HTML タグや XML タグを変更する際にも「F2」キーを押すという操作の方が、 操作方法に一貫性があって好みではあるのですが、 世の中にはその「F2」キーを押すという操作すらメンドウだと感じる方もいらっしゃるようで、 「F2」キーを押さずにタグを修正する方法もあります。

実は VS Code には、この開始タグと終了タグの記述をリンクさせて、 1回の修正で同時に修正するという機能が組み込まれていまして、 設定画面で「Linked Editing」という項目を有効にすると、この機能が使えたりします。 この機能が有効な場合、「F2」キーを押す必要すらなく、エディタ上でタイプするだけでリアルタイムにタグを修正してくれます。 しかしながら、やはりこの機能も HTML ファイルや、JavaScript ファイル(React の JSX)などでしか効きません。

PHP の中に書かれた HTML でもリアルタイムに修正して欲しいという場合は、「Auto Rename Tag」拡張機能を使用する必要があります。 「Auto Rename Tag」拡張機能をインストールすると、エディタ上でタイプするだけでリアルタイムにタグを修正してくれるようになります。

auto_rename_tag.png

参考サイト

関連記事

デフォルトの VS Code の場合、PHP ファイルの関数一覧は表示されません。PHP ファイルが縦に長い場合は、関数一覧が無いと不便だと思いますので、VS Code で PHP の関数一覧が表示されるように設定してみましょう。アウトラインビューを使用するVS Code には変数や関数の一覧を表示するためのアウトライ ...
PHPUnit を使用してテストを行う際、必ず通るとわかっているテストを毎回実行していては、作業効率があまりよろしくありません。とはいえ、実行するテストをコマンドで1つずつ手入力していくのもメンドウです。そこで、VS Code に「PHPUnit Test Explorer」拡張機能をインストールすると、実行するテスト ...
デフォルトの VS Code には、キーボードマクロ(キーマクロ)というキー操作を記録して再生するという機能がありません。秀丸エディタやサクラエディタなどで、キーボードマクロを多用していた方はかなり困るのではないでしょうか。そこで、VS Code でもキーボードマクロが使用できるようにしてみましょう。VS Code に ...
PHP のコードを実行する前に、バグがあるかどうか調べられると便利だとは思いませんか?PHP はスクリプト言語ですので、いくら文法的に正しいコードであっても、実際に実行させるまでバグか発生するかどうかわからないという、スクリプト言語であるが故の本質的な問題を抱えています。C や Java など他のコンパイル言語ではコン ...
プログラムを書いていると気になるのがコードの読みやすさです。複数人で開発している場合などは特にコードの読みやすさは重要です。PHP_CodeSniffer とは?PHP_CodeSniffer は、PHP のコードがちゃんとコーディング規約に沿って記述されているか検査したり、コーディング規約に違反している個所を自動的に ...

記事検索

最新記事

人気記事

RSSフィード

フィードバック

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

匿名でフィードバックする
匿名でフィードバックする

要望などあれば、お気軽にどーぞ。 不具合やバグを発見した場合も、連絡をいただけると助かります。

なお、このフォームから入力された内容について、管理者から返信はできませんので注意してください。 もし、管理者からの返信が必要であれば、X(旧 Twitter) もしくは、お問い合わせより、お願いします。