【Mac+Docker】PHP Intellisense設定方法

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは。タクマ™ [@suwaru_blog] です。

最初にとりあえずで入れてた VS Code のプラグイン「PHP Intellisense」だったんですが

あれ動いてなくね?

…と気づきました。どうやら今まで使っていたのは VS Code デフォルトの機能だった模様。
それでもめちゃくちゃ困ったことはなかったものの、せっかくなので今回設定してみました。

(2021 年 8 月 19 日、追記)
PHP IntelliSense がマーケットプレイスで非公開になりました。
PHP Intelephense を代用しましょう。設定方法は同じです!

【VS Code】PHP Intellisense の使い方

PHP Intellisense プラグインを使うためには、以下の手続きが必要です。

PHP 実行ファイルの PATH を php.executablePath として設定する

…なんですが、仮想環境を使っていると結構ややこしい。
例えば Docker だと、コンテナ環境内に PHP 実行ファイルがありますね。

自分は以下のように対応しています。

  • (本末転倒な気もするが) Docker と同じ PHP 環境を Mac 側にも用意する
  • その際、phpbrew で Mac 側の PHP バージョン管理をする
    • ※ 直接 PHP インストールすると、そのバージョンで環境汚染してしまうからです

今回はこの手順を紹介します! ※ もっと良い方法があれば教えてほしいです。

phpbrew

(追記) 実は、最近の僕は phpbrew よりも phpenv を愛用しています。理由としては anyenv というツールで様々な言語の **env 系ツールを一元管理できる。スピードが早い、など。解説記事リンクを貼っておきますね!

初期設定

phpbrew と依存ライブラリを homebrew でインストールします。
これ全部やってないとエラーでまくります。

xcode-select --install
brew install autoconf bzip2 icu4c krb5 libedit libiconv libjpeg libpng libxml2 libzip oniguruma openssl@1.1 pkg-config tidy-html5 gcc re2c bison
curl -L -O https://github.com/phpbrew/phpbrew/releases/latest/download/phpbrew.phar
chmod +x phpbrew.phar

# $PATH の通ったディレクトリに phpbrew 実行ファイル移動 (今回は /usr/local/bin)
sudo mv phpbrew.phar /usr/local/bin/phpbrew
phpbrew init

僕は zsh ユーザなので ~/.zshrc に以下を追加します。
bash ユーザは ~/.bashrc に以下を追加してください。

[[ -e ~/.phpbrew/bashrc ]] && source ~/.phpbrew/bashrc

phpbrew を使えるようにするため、 ターミナルを再起動してください。
そのあと、以下のコマンドを実行しておくといいと思います。(任意)

# ライブラリ探索用のプレフィックス設定 (今回はhomebrew)
phpbrew lookup-prefix homebrew

PHP インストール・環境に適用する

# リスト最新化して、インストールできるバージョンを表示
phpbrew update
phpbrew known

# PHP インストール (今回は 7.4.14)
phpbrew install 7.4.14 +default

# インストールした PHP を環境適用する
# もしエラーが出たらターミナル再起動してみてください
phpbrew switch 7.4.14                   

# バージョンが合っていれば OK
php -v

2021 年 4 月 14 日現在、PHP 8.0.3 では PHP Intellisense が動きませんでした。。。
PHP 7 系を使うことをオススメします。

VS Code 設定

デフォルトの PHP 設定をオフにする

チェックを外して無効化する

設定画面の検索バーに「php」と入力して Suggest: BasicValidate: Enable を無効化します。

executablePath を設定する

「ワークスペース」タブの setting.json で編集

設定画面の検索バーに「php intellisense」と入力してください。

通常、開発プロジェクトによって PHP バージョンが異なると思います。
なので今回は「ワークスペース」単位で executablePath を設定します。

# 適用されている PHP コマンドの場所を表示
which php
/Users/tak/.phpbrew/php/php-7.4.14/bin/php
{
    // 先ほどの PHP コマンドの場所を指定する
    "php.executablePath": "/Users/tak/.phpbrew/php/php-7.4.14/bin/php"
}

VS Code 再起動すれば、PHP Intellisense が使えるようになっているはずです。
コードジャンプ機能が便利。 (なぜオレはあんなムダな時間を・・・)

ユーザ設定

「ユーザー」タブの setting.json で編集

一応、グローバルな executablePath を設定しておいてもいいでしょう。

# 保有している PHP コマンドの場所を全部表示
where php
/Users/tak/.phpbrew/php/php-7.4.14/bin/php
/usr/local/bin/php
/usr/bin/php
{
    // 省略
    // 今回は /usr/bin/php を設定
    "php.executablePath": "/usr/bin/php"
}

phpcs

せっかくなので PHP コーディング規約 (PSR) に沿っているかどうかチェックしてくれる phpcs プラグインも入れましょう。こちらは php-code-sniffer の存在が前提となるのでインストールします。

brew install php-code-sniffer

# PATH 確認
which php-code-sniffer

# もしくはこちらで PATH 確認
which phpcs
  • VS Code 設定の phpcs.executablePath に表示された PATH を設定する
  • VS Code 設定の json に "phpcs.standard": "PSR2" を追記してください

関連記事

お仕事ください!

僕が代表を務める 株式会社 EeeeG では Web 制作・システム開発・マーケティング相談を行っています。
なにかお困りごとがあれば、Twitter DM や Web サイトからお気軽にご相談ください。

カテゴリ「Develop」の最新記事

最新記事

コメント

匿名 へ返信する コメントをキャンセル

*