Visual Studio Code で快適な PHP コーディングを行う

2017/06/26 誤字を修正しました。

 
会社の中で酸素を二酸化炭素に変換する仕事をしている umiushi です。
この内容は社内向けに書いたものをブログに投稿しています。
その為、普通とはことなる構成となっている可能性がありますので、ご了承ください。

 

はじめに

この記事は Windows7 Professional x64 の環境にもとづいて記述されている。
別の環境( Mac とか Linux とか)の場合は手順が異なる可能性があるので注意。

 

Visual Studio Code とは?

Visual Studio Code(以下VSCode)とは、Microsoftによって開発されたオープンソースのエディタである。
よく似たエディタだと Sublime Text とか、Atom、Brackets などがある。
これらのエディタと同じく、足りないと思う機能があれば拡張機能として追加することができ、自由にカスタマイズできる。

 

PHP コーディングに必要なモノ

PHP を快適にコーディングするためにはおそらく次のようなものが必要だと思う。

  • シンタックスハイライト
  • コードの補完
  • コードの整形
  • デバッグ

これらを次の機能で持って解決したい。

やりたいこと 解決策
シンタックスハイライト テーマの変更
コードの補完 PHP Intellisense(拡張機能)
コードの整形 PHP Intellisense(拡張機能)
デバッグ PHP Debug(拡張機能)

テーマを変更してシンタックスハイライトを使いやすくするシンタックスハイライトはデフォルトで備わっている。
ただしデフォルトのテーマ設定である Dark (Visual Studio) だと変数やメソッドの配色が他の文字と同じ白色で表示されていまい、とても見づらい。

Dark (Visual Studio) テーマでの配色

そこでテーマを Dark+ (default dark) に変更する。

Dark+ (default dark) テーマの配色

テーマの変更は Ctrl+K Ctrl+T と入力するとテーマ一覧が表示される。
あるいは Ctrl+Shift+PF1 でコマンドパレットを開き、theme と入力して検索してもよい。

テーマ選択

 

コードを補完させる

VSCode はそのままでもある程度の補完機能を備えているが、あくまでも PHP の標準機能に関するものだけである。
実際に PHP でコーディングするのであれば、自作クラスやメソッドなども補完してほしいところ。

そこで、拡張機能の PHP IntelliSense を使用する。

拡張機能をインストールするには、Ctrl+Shift+Pでコマンドパレットを開き、ext install と入力し検索する。
「拡張機能:拡張機能のインストール」を選択すると拡張機能のサブメニューが開くので、検索してインストールする。

PHP IntelliSense を機能させるには同じ作者が PHP で作成した felixfbecker/language-server が必要となる。
この language-server の動作環境は PHP >= 7.0.0 であるので、PHP7 も必要になる。

 

既存の PHP 環境に触れずに PHP7 をインストールする

もし Mac とか Linux とかを使用しているのであれば、この解説を実行するのではなく phpenv などを使用することをおすすめする。

私の環境では PHP5.6 がインストールされており、業務の都合上、PHP7 に変更することができない。
そこで、PHP7 のダウンロードだけ行い、パスを設定することで PHP IntelliSense を動作させる。

PHP のダウンロードはここから行う。
今回は “VC14 x64 Thread Safe (2017-Feb-14 23:28:27)” をダウンロードするが、時期によっては異なるバージョンとなる可能性もある。

ダウンロードしたら適当なディレクトリに解凍する。
解凍後、”php-7.x.x-Win32-VC14-x64″ というディレクトリが出来上がるはずなので、そこに移動する。

php.ini-development というファイルがあるので、それをコピーして名前を php.ini に変更する。
コピーしてリネームした php.ini を開き、次のように設定を変更する。

-;extension=php_openssl.dll
+extension=php_openssl.dll

; On windows:
-; extension_dir = "ext"
+extension_dir = "ext"

PHP はこれで準備OK。

次に VSCode を設定する。
[ファイル]→[基本設定]→[設定] と開き、settings.json を表示させる。

左側にデフォルトの設定項目が、右側にユーザ設定が表示されるので、右側に JSON 形式で次のように記入する。

{
    "php.validate.executablePath": "php-win.exeのパスをここに記入",
    "php.executablePath": "php-win.exeのパスをここに記入",
    "php.suggest.basic": false
}

このように記入して保存(Ctrl+S)する。
これで VSCode で PHP7 が認識される。

 

language-server をインストールする

language-server は Microsoft が作成した Language Server Protocol に対応する PHP で記述されたプログラムである。

インストールするには PHP でのライブラリ管理に用いられる Composer を使用する。

まず、C:\Users\ユーザ名\AppData\Roaming\Composer\composer.json を開き(なければ作成する)、次の用意に記述する。

{
    "require": {
        "felixfbecker/language-server": "*"
    }
}

次に管理者権限でコマンドプロンプトを開き、次のコマンドを入力する。

composer global update

もし PHP7 を別途インストールしている場合は代わりに次のコマンドを入力する。
<> 内のパスは自分の環境に合わせて変えること。

&lt;php.exeのパス&gt; &lt;composer.pharのパス&gt; global update

これで自動的に language-server とそれに必要なライブラリ群がダウンロードされる。

 

デバッグできるようにする

VSCode にはデバッグ機能がデフォルトで備わっている(左側アイコンの「虫に禁止」マークのボタン)。
しかしそのままでは PHP のデバッグはできないので、PHP Debug という拡張機能をインストールすることで対応させる。

PHP Debug は XDebug という PHP 用のモジュールに依存しているため、自分の環境の PHP でこれを使用できるように設定する必要がある。

適切な設定が完了している場合は、VSCode でデバッグ(Ctrl+Shift+D)を開始することで PHP のデバッグが行える。

デバッグモードで左上の歯車マークを押すと、launch.json のファイルが開く。

デバッグの開始

JSON形式のコンフィグファイルが開くので、"name": "Launch currently open script" となっている部分を次のように変更する。

{
    "name": "Launch currently open script",
    "type": "php",
    "request": "launch",
    "program": "${file}",
    "cwd": "${fileDirname}",
    "serverSourceRoot": "${fileDirname}",
    "localSourceRoot": "${workspaceRoot}",
    "port": 9000,
    "runtimeExecutable": "<php.exeのフルパス>"
}

環境によってはこんなに設定を書かなくとも動作する可能性があるが、少なくとも私の環境ではこれで動作した。

あとは左上のプルダウンを "Launch currently open script" に変更し、緑の三角アイコンを押すことでデバッグが実行できる。
行番号の左側をクリックしてブレークポイントを追加すると、その部分で一時停止させることができ、ステップ実行もできる。

デバッグ中

 

XDebug をインストールする

XDebug はここからダウンロードできる。
今回の PHP 構成は PHP 7.1 VC14 x64 Thread Safe であるため、PHP 7.1 VC14 TS (64 bit) をダウンロードする。
ダウンロードした dll ファイルは <PHPのパス>/ext/ 以下に保存する。

次に php.ini を次のように変更する(項目がない場合は追記する)。

[xdebug]
zend_extension="php_xdebug-バージョンなど.dll"
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000
xdebug.remote_enable=1
xdebug.remote_autostart=1

この状態でコマンドプロントで php -v と入力し、XDebug の表示がでればOK。

 

おわりに

これまでの手順を行うことで、VSCode で比較的快適な PHP コーディングが可能となるはず(快適さには個人差があります)。

Share

5 件のコメント

  1. ピンバック: VSCode PHP Debug – Open Sesame

  2. sk 返信

    記事ありがとうございます。php.iniの記述内容ですが
    xdebug_remote_enable=1 → xdebug.remote_enable=1
    が正解のようです。

    • ELPstaff 投稿者返信

      sk様 ご指摘ありがとうございます。
      記事内容を修正いたしました。

  3. ピンバック: WindowsにVSCodeのPHP開発環境を構築 | IT技術情報局

  4. ピンバック: PHP&VSCode 導入手順 | IT技術情報局

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

Optionally add an image (JPEG only)