VS Code で PHP の関数一覧を表示する方法

デフォルトの VS Code の場合、PHP ファイルの関数一覧は表示されません。 PHP ファイルが縦に長い場合は、関数一覧が無いと不便だと思いますので、 VS Code で PHP の関数一覧が表示されるように設定してみましょう。

アウトラインビューを使用する

VS Code には変数や関数の一覧を表示するためのアウトラインビューという機能があります。 アウトラインビューは、デフォルトだと左サイドバーの下にあります。 デフォルトの VS Code でも、JavaScript ファイルなどであれば、 そのファイルのアウトライン(変数や関数の一覧)が表示されますので、 どんな風に表示されるか確認してみましょう。

outline.png

アウトラインビューを右サイドバーに移動させる

アウトラインビューはデフォルトだと左サイドバーの下にありますが、 そこだと表示領域が狭くて非常に見づらいと思います。 そこで、このアウトラインビューを右サイドバーに移動させましょう。

右サイドバーに移動させるには、まず右サイドバーを表示する必要があります。 右サイドバーを表示するには、右上の表示切替ボタンを使用するか、「Ctrl + Alt + B」を押します。 次に、左サイドバーのアウトラインビューを、右サイドバーにドラッグ&ドロップして持っていきます。

right_sidebar_drag.png

右サイドバーであれば縦方向が長いので、関数が大量に定義されているファイルでも見やすいと思います。

right_sidebar_outline.png

アウトラインビューで表示されるものを変更する

デフォルトのアウトラインビューには、関数以外にも、定数や変数、クラスのプロパティなども表示されます。 もし、それらの表示が邪魔な場合は、表示しないように変更しましょう。

アウトラインビューで表示されるものを変更するには、 VS Code の設定画面で「outline」を検索し、非表示にしたいもののチェックを外します。 定数を非表示にしたい場合は、「Outline: Show Constants」のチェックを外します。 クラスのプロパティを非表示にしたい場合は、「Outline: Show Properties」のチェックを外します。 変数を非表示にしたい場合は、「Outline: Show Variables」のチェックを外します。

settings_outline.png

PHP の拡張機能のインストール

アウトラインビューが使用できるようになったら、次はそのアウトラインビューに PHP のアウトライン(変数や関数の一覧)を表示させるようにしましょう。 PHP のアウトラインはデフォルトの VS Code では表示されませんので、PHP のアウトラインが表示できる拡張機能をインストールする必要があります。 主に「PHP IntelliSense」と「PHP Intelephense」の2つが有名かと思います。 どちらもインストールするだけで、アウトラインビューに PHP のアウトラインが表示されるようになります。

「PHP IntelliSense」の方は、機能が限られていますが、設定項目が少なくシンプルな印象があります。 「PHP Intelephense」の方は、高機能ですが、それゆえ設定が細かく少し設定が難しい印象があります。 両方の使い方を記載(後述)しておきますので、お好みの方を選んで使用してください。

VS Code のデフォルトのヘルプ表示を無効化しておく

「PHP IntelliSense」と「PHP Intelephense」にはどちらも PHP のヘルプを表示する機能があるのですが、 デフォルトの VS Code にも PHP のヘルプを表示する機能は搭載されています。 それぞれが同時にヘルプを表示してしまうと、内容が重複して表示されて邪魔なだけですし、 拡張機能のヘルプの方が高性能だと思いますので、 デフォルトの VS Code の PHP のヘルプを表示する機能を無効化しておくと良いでしょう。

suggest.png

デフォルトの VS Code の PHP のヘルプ表示を無効化するには、 VS Code の設定画面で「php」を検索し、「PHP › Suggest: Basic」のチェックを外します。

settings_php.png

「PHP IntelliSense」拡張機能を使用する場合

VS Code に 「PHP IntelliSense」をインストールするには、 拡張機能の検索欄に「php」と入力して検索しインストールします。

intellisense_install.png

「PHP IntelliSense」をインストールすると、アウトラインビューに PHP のアウトラインが表示されるようになります。 デフォルトのアウトラインビューには、関数以外にも、定数やクラスのプロパティなども表示されます。 もし、それらの表示が邪魔な場合は、VS Code の設定画面で表示しないように変更しましょう(設定方法は上述)。 「PHP IntelliSense」の場合は、関数の中の変数は表示されません。

intellisense_outline.png

「PHP Intelephense」拡張機能を使用する場合

VS Code に「PHP Intelephense」をインストールするには、 拡張機能の検索欄に「php」と入力して検索しインストールします。

intelephense_install.png

「PHP Intelephense」をインストールすると、アウトラインビューに PHP のアウトラインが表示されるようになります。 デフォルトのアウトラインビューには、関数以外にも、定数やクラスのプロパティなども表示されます。 「PHP Intelephense」の場合は、さらに関数の中の変数まで表示されます。 もし、それらの表示が邪魔な場合は、VS Code の設定画面で表示しないように変更しましょう(設定方法は上述)。

intelephense_outline.png

Undefined エラーが表示される場合

「PHP Intelephense」を使用する場合、エラーのチェックが強力になっていて、 Composer のオートローダーなどで自動で読み込まれるファイルであったとしても、 Undefined エラーとして指摘されてしまうことがあります。 その場合は、Undefined エラーとして指摘されないように設定しましょう。

intelephense_undefined.png

Undefined エラーとして指摘されないように設定するには、 「PHP Intelephense」の設定画面で「undefined」を検索し、非表示にしたいもののチェックを外します。

settings_undefined.png

参考サイト

関連記事

デフォルトの VS Code には、キーボードマクロ(キーマクロ)というキー操作を記録して再生するという機能がありません。秀丸エディタやサクラエディタなどで、キーボードマクロを多用していた方はかなり困るのではないでしょうか。そこで、VS Code でもキーボードマクロが使用できるようにしてみましょう。VS Code に ...
あまり頻度は多くありませんが、ファイルの内容をテキストではなくバイナリで確認したいときがあります。VS Code に「Hex Editor」拡張機能をインストールすると、VS Code 上でファイルの内容をバイナリで確認したり、直接バイナリで編集したりすることができるようになります。「Hex Editor」拡張機能のイ ...
VS Code に Docker 拡張機能をインストールすると、Dockerfile もしくは docker-compose.yml ファイルを編集する際にコード補完機能が使用できるようになったり、VS Code から Docker のコンテナやイメージを操作できるようになります。Docker 拡張機能のインストールさ ...
PHP のコードを実行する前に、バグがあるかどうか調べられると便利だとは思いませんか?PHP はスクリプト言語ですので、いくら文法的に正しいコードであっても、実際に実行させるまでバグか発生するかどうかわからないという、スクリプト言語であるが故の本質的な問題を抱えています。C や Java など他のコンパイル言語ではコン ...
プログラムを書いていると気になるのがコードの読みやすさです。複数人で開発している場合などは特にコードの読みやすさは重要です。PHP_CodeSniffer とは?PHP_CodeSniffer は、PHP のコードがちゃんとコーディング規約に沿って記述されているか検査したり、コーディング規約に違反している個所を自動的に ...

記事検索

最新記事

人気記事

RSSフィード

お知らせ

フィードバック

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

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

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

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

  • フィードバックの送信が完了しました。