Laravel Homestead * Visual Studio Code で開発環境構築

フロント開発にも対応するためVisual Studio Codeに移行。
NetBeansなんていらなかった。

Laravelが動くところまでは以下を参照。
Macで環境構築
https://trueman-developer.blogspot.com/2018/12/laravel-homesteadnetbeansmac.html
Windowsで環境構築
https://trueman-developer.blogspot.com/2018/12/laravel-homesteadnetbeanswindows.html






環境



Mac Sierra 及び Windows10
VirtualBox 5.2.22
NetBeans 8.2
Larabel 5.5(LTS)
homestead v7.20.0

で確認。



Homestead立ち上げ



vagrant up


Visual Studio Codeでリモートデバッグできるようにする




Visual Studio Codeで拡張機能PHP Debug追加


拡張機能でPHP Debugと入力 →インストール




デバッグの設定


デバッグ画面で歯車マーククリック → PHP



.vscode/launch.json の編集

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000,
            "pathMappings": {
                "/home/vagrant/code": "${workspaceRoot}"
            }
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

port番号、pathMappingは変わる可能性あり
port番号:vagrant上のXDebugで指定しているポート番号
pathMapping:vagrant上のプロジェクトディレクトリ


EncryptCookies.phpの設定


このままだと例外を投げる。
Illuminate\Contracts\Encryption\DecryptException: The payload is invalid

https://stackoverflow.com/questions/47355311/laravel-5-with-xdebug-always-throws-the-payload-is-invalid

App\Http\Middleware\EncryptCookies
に以下一行追記

<?php

namespace App\Http\Middleware;

use Illuminate\Cookie\Middleware\EncryptCookies as Middleware;

class EncryptCookies extends Middleware
{
    /**
     * The names of the cookies that should not be encrypted.
     *
     * @var array
     */
    protected $except = [
        // Add
        'XDEBUG_SESSION'
    ];
}



以上でデバッグできるようになる。
うまくいかない場合はCookieを削除してみるといいかもしれない。


Visual Studio CodeでIntelloSenseが効くようにする



Visual Studio Codeで拡張機能PHP IntelloSenseを追加する。


拡張機能からインストール



コード補完のためにはlanguage-serverを導入しないといけないようだ。
language-serverを導入するためにPHPのインストールが必要。
ローカル環境を汚したくないがためのHomesteadではなかったか...

最新のPHPがあればいいはず。

以下Macの手順

https://qiita.com/yamatmoo/items/4ff2fe1785f771e67e08

brewインストール


https://brew.sh/
https://qiita.com/is0me/items/475fdbc4d770534f9ef1
より

Apacheを止める



sudo apacehctl stop


PHPインストール


VSCodeで表示されたPHPのバージョン(今回は7)を検索
brew search php@7

インストール
brew install php@7.2


パスを通す。
vi ~/.bash_profile

export PATH="$(brew --prefix homebrew/php/php70)/bin:$PATH"
追記

bash_profile 再読み込み
source ~/.bash_profile

バージョン確認
php -v
7.xと表示されていればOK

これでインテリセンスが効くようになる。
定義へ移動したり、候補が出るようになる。
リネームには対応できていない模様。



参考


https://qiita.com/itigoore01/items/c0e8ef5756503ef588d1
https://qiita.com/y_murakami88/items/eafec8aa6ee8b09b57d8



2018年12月25日火曜日