Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
0
Help us understand the problem. What are the problem?

posted at

updated at

Organization

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

目的

  • 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. その後エラー(例外)が出たときと同じ方法でデバッグを実行したら問題は解決した。

参考文献

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
0
Help us understand the problem. What are the problem?