Ave
Ave

Reputation: 4430

Can't using Visual Code to debug in Laravel project

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

Upvotes: 8

Views: 7626

Answers (4)

Mexidense
Mexidense

Reputation: 1181

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"
    }
]
}

Upvotes: 1

Krishan König
Krishan König

Reputation: 482

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

Upvotes: 16

JP Lew
JP Lew

Reputation: 4439

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.

Upvotes: 4

Robert Dewitt
Robert Dewitt

Reputation: 324

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

Upvotes: 5

Related Questions