Home » Php » php – Can't using Visual Code to debug in Laravel project

php – Can't using Visual Code to debug in Laravel project

Posted by: admin July 12, 2020 Leave a comment

Questions:

I was config success to debug in PHP on VSCode.

My problem is when I run the project it always errors at the function:

protected function getJsonPayload($payload)
{
    $payload = json_decode(base64_decode($payload), true);

    // If the payload is not valid JSON or does not have the proper keys set we will
    // assume it is invalid and bail out of the routine since we will not be able
    // to decrypt the given value. We'll also check the MAC for this encryption.
    if (! $this->validPayload($payload)) {
        throw new DecryptException('The payload is invalid.');
    }

    if (! $this->validMac($payload)) {
        throw new DecryptException('The MAC is invalid.');
    }

    return $payload;
}

… from file: /srv/http/laravelproject/vendor/laravel/framework/src/Illuminate/Encryption/Encrypter.php

I can’t debug to breakpoint I was set.

Gif screen record: http://i.imgur.com/6pNkoHe.gif

How to&Answers:

Your question seems to be a related post to this, which provides a pretty good answer. Also, my question to you is why are you using DecryptException? Laravel has bcrypt(for password hashing) and csrf tokens (form data encryption) that are much easier to use.

For those looking for a quick answer without reading the comments:

Run these commands in Eloquent:

php artisan optimize -> php artisan cache:clear -> composer dump-autoload

Answer:

Had the same issue when using Docker with VsCode and xDebug in Laravel.

For anyone interested in a different approach (since Laravel 5.6 there is no optimize command anymore)

Just add the ignore section to your launch.json config.

{
   "name": "Listen for XDebug",
   "type": "php",
   "request": "launch",
   "port": 9000,
   "pathMappings": {
       "/var/www/html": "${workspaceRoot}",
    },
    // add this
    "ignore": [
        "**/vendor/**/*.php"
    ]
},

Solved the issue for me.

Got this from Docker Github Repo

Answer:

I had the same problem and the accepted answer solved it.

However, if anyone simply wants to dismiss the problem temporarily, rather than getting to the root of it, you can uncheck the “Everything” checkbox at the bottom of the Breakpoints panel of the debug pane, and that will skip over the error.

Answer:

On Laravel 5.7, it works for me:

{
"version": "0.2.0",
"configurations": [
    {
        "name": "Listen for XDebug",
        "type": "php",
        "request": "launch",
        "port": 9000,
        "ignore": [
            "**/vendor/**/*.php"
        ]
    },
    {
        "name": "Launch currently open script",
        "type": "php",
        "request": "launch",
        "program": "${file}",
        "cwd": "${fileDirname}",
        "port": 9000,
        "runtimeExecutable": "/usr/bin/php"
    }
]
}