Laravelでの開発に便利だと感じているVSCodeの設定や拡張機能を少量ですがまとめます。
個人差はあると思いますが、「開発効率上がりそう!」と思ったものはぜひ開発環境に取り入れていただけたらと思います。
コマンド操作はMacベースで書いています。
VSCodeの設定
まずは設定から。
PHP Suggest : Basic
PHPのコード補完をしてくれるVSCodeの設定です。

デフォルトではチェックが入っている(ON)と思いますが、もし入ってなかったらONしておいても良いです。
僕はこれをOFFにしています。
その理由としては後ほどご紹介するPHPの超便利拡張機能で強力なコード補完が使えるので、補完で出てくる候補をその拡張機能のものだけにするためです。
なので、この記事を最後まで読んでいただき、同じ環境にするのであればここはOFFで問題ありません。

これをONにして後述の拡張機能を入れても別にバッティングしてうまく動作しない事はないので別にONでも良いっちゃ良いと思いますw
Word Separators
プログラミングしていく上でタイポを無くすために既存の変数名、クラス名などを使う場合は毎回手入力するのではなくコピペするべきだと個人的には思っています。
VSCodeでは特定のコードの上にポインターを置いた状態で
- ダブルタップ
- command + d
をすることでそこの単語を一気に選択した状態にすることができるのでそのままコピー→使いたいところにペーストが簡単に行えます。
(うまく言葉で説明できない…)
デフォルトのVSCodeの設定では以下のコードで$sample
の上でダブルアップ→コピーを行ってもコピーできるのはsample
のみです。
<?php
$sample = "$は選択されない";
PHPでは変数名の頭に$
をつけるので、毎回$
を手入力するのはめんどくさい。
ということでVSCodeの設定項目の1つである、Word Separatorsから$
を削除しましょう。


この設定項目はフォームに設定されている文字が区切り文字になるので、ここから$
を消してあげることで$sample
の上でコピーした場合は、$sample
がコピーされます。
ちょっとしたことですが、結構便利です。
VSCodeの拡張機能
次は拡張機能です。入れるか入れないかで大きく開発効率が変わります。
PHP Intelephense
Laravel(というかPHP)開発では絶対に入れておいた方が良い拡張だと思っています。


この記事を書こうと思ったきっかけでもある下のツイートに書いているとおり、いわゆるメソッドジャンプ(メソッドを使っているところでcommandを押しながらホバー→クリックでメソッド定義元に飛べる)が使えるようになります。
定義元に飛べるのはメソッドだけでなく、変数、クラス(コントローラー、モデル、サービスなど)でも可能です。
エンジニアのキャリアをスタートしてすぐに職場の先輩からこの拡張機能とメソッドジャンプのやり方を教えてもらったのでPHPerだと当たり前なのかと思っていましたが、Twitterで意外と反応が大きかったので結構知らない人いるんだなと思いました。
(というわけで記事を書いていますw)
この拡張機能の機能は他にもあります(コード補完も強力です)が、
メソッドやクラスなどの定義元に一瞬で飛べる
というだけでも入れる価値はあります、というか必須です。
PHP Debug
これはXdebugをVSCode上から使えるようにするための拡張機能です。


詳しい導入方法は以下の記事にまとめていますが、個人的にPHP開発にXdebugは無くてはならないツールなのでこれは入れた方が良いと思います。


Laravel Snippets
Laravelのコード補完(主にファサード?)をしてくれる拡張機能です。


例えば、routes/web.php
でRoute::
と打つと、色々な候補が出てきてくれるので、Route::get
を選択すると
Route::get('users/{id}', function ($id) {
});
このような雛形を準備してくれます。
Laravelでの開発ではファサードが活躍する場面は結構あるので、Laravel Snippetsさんは入れておいて損はないかと思います。
最後に
PHP開発のエディターとしてはPHPStorm(有料)が有名で人気ですが、VSCodeでも割と快適な開発環境が構築できると思っています。
(PHPStormを使ったことがないので、使ったら「PHPStorm最高!PHPerはみんなこれ使おう!」とか言うかもしれませんw)
この記事でご紹介した環境がベストプラクティスではありませんので、この記事に書いているもの以外でオススメの設定や拡張機能があればぜひ教えてください!
コメント