LoginSignup
0
0

More than 3 years have passed since last update.

Laravel VScode デバッグで出るエラー(例外)を解決する

Last updated at Posted at 2020-12-25

目的

  • VScodeのPhpDebugを用いてLaravelのデバッグ環境を構築したがエラー(例外)が出てしまってちょっと詰まったので解決方法をメモ的にまとめておく

環境

  • ハードウェア環境
項目 情報
OS macOS Catalina(10.15.5)
ハードウェア MacBook Pro (13-inch, 2020, Four Thunderbolt 3 ports)
プロセッサ 2 GHz クアッドコアIntel Core i5
メモリ 32 GB 3733 MHz LPDDR4
グラフィックス Intel Iris Plus Graphics 1536 MB
  • ソフトウェア環境
項目 情報 備考
PHP バージョン 7.4.8 Homebrewを用いてこちらの方法で導入→Mac HomebrewでPHPをインストールする
Laravel バージョン 6.X commposerを用いてこちらの方法で導入→Mac Laravelの環境構築を行う
MySQLバージョン 8.0.19 for osx10.13 on x86_64 Homwbrewを用いてこちらの方法で導入→Mac HomebrewでMySQLをインストールする

情報

  • Macに直接構築(Dockerなど未使用)したLaravelのローカル開発環境においての問題をまとめる。

エラーまでの経緯

  1. ローカル開発環境にてdebugモードにしてからブレークポイントを設定した。
  2. ChromeのXdebug helperアプリでlaravelアプリのタブをデバッグモードにした。
  3. ブレークポイントに関係のあるlaravelアプリのページを開いた。

エラー

  • 下記のエラー(例外)がVScodeのソース上に表示され自分が設定したブレークポイント以外で処理が止まってしまう。

    例外が発生しました
    Illuminate\Contracts\Encryption\DecryptException: The payload is invalid.
    

    Encrypter_php_—_j-project.png

解決策1 ソースに追記

  1. アプリ名ディレクトリで下記コマンドを実行してEncryptCookies.phpを開く

    $ vi app/Http/Middleware/EncryptCookies.php
    
  2. 下記のように内容を修正する

    アプリ名ディレクトリ/app/Http/Middleware/EncryptCookies.php
    <?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 = [
            // 下記を追記
            'XDEBUG_SESSION'
        ];
    }    
    
  3. その後エラー(例外)が出たときと同じ方法でデバッグを実行したら問題は解決した。

  4. しかし本方法だと$ git statusコマンドを実行すると毎回EncryptCookies.phpが差分として表示されて目障り。

解決策2 ソースをいじらない

  1. VScodeのデバッグ時のサイドバーの「ブレークポイント」を確認する。

    Encrypter_php_—_j-project-2.png

  2. 「ブレークポイント」のタブの中に「Everything」という項目がありデフォルトだとチェックが入っている。

    Encrypter_php_—_j-project-3.png

  3. 「Everything」のチェックを外す。

    Encrypter_php_—_j-project-4.png

  4. その後エラー(例外)が出たときと同じ方法でデバッグを実行したら問題は解決した。

参考文献

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0