Laravel Ошибка обновления с 5.8 до 6.x - Объявление App \ Exceptions \ Handler :: renderHttpException - PullRequest
0 голосов
/ 20 июня 2020

Недавно я обновил Laravel в проекте с версии 5.8. * До 6.x.

Теперь, когда я пытаюсь запустить команду composer dump-autoload -o, я получаю эту ошибку:

Declaration of App\Exceptions\Handler::renderHttpException(Symfony\Component\HttpKernel\Exception\HttpException $e)
   should be compatible with Illuminate\Foundation\Exceptions\Handler::renderHttpException(Symfony\Component\HttpKern
  el\Exception\HttpExceptionInterface $e)

Ниже composer.json, установленный в проекте, когда я обновил Laravel с 5.7. * До 5.8. *, Я также получил ту же ошибку, что и выше, но я обновился дальше, надеясь, что это решит проблему:

{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "repositories": [
        {
        "type": "composer",
        "url": "https://packages.[company_api].com"
        }
    ],
    "require": {
        "php": ">=7.1.3",
        "basemkhirat/elasticsearch": "^1.3",
        "botman/botman": "^2.5",
        "botman/driver-web": "^1.5",
        "deployer/deployer": "^6.0",
        "fideloper/proxy": "^4.0",
        "guzzlehttp/guzzle": "^6.3",
        "jenssegers/agent": "^2.6",
        "jimmiw/php-time-ago": "^2.0",
        "laravel/framework": "^6.0",
        "laravel/scout": "^8.0",
        "laravel/tinker": "~1.0",
        "[company_name]/wordpressblogapi": "1.4.*"
    },
    "require-dev": {
        "filp/whoops": "~2.0",
        "fzaninotto/faker": "~1.4",
        "mockery/mockery": "0.9.*",
        "phpunit/phpunit": "~7.0"
    },
    "autoload": {
        "classmap": [
            "database/seeds",
            "database/factories"
        ],
        "psr-4": {
            "App\\": "app/"
        },
      "files": [
        "helpers/helpers.php"
      ]
    },
    "autoload-dev": {
        "psr-4": {
            "Tests\\": "tests/"
        }
    },

    "scripts": {
        "post-root-package-install": [
            "php -r \"file_exists('.env') || copy('.env.example', '.env');\""
        ],
        "post-create-project-cmd": [
            "@php artisan key:generate"
        ],
        "post-autoload-dump": [
            "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
            "@php artisan package:discover"
        ]
    },
    "config": {
        "preferred-install": "dist",
        "sort-packages": true,
        "optimize-autoloader": true
    }
}

Я сослался на документы, и в нем конкретно не говорится о каких-либо изменениях файлов Exception или Handler.php, поэтому любой может предложить, как решить эту проблему ...

1 Ответ

0 голосов
/ 20 июня 2020

Это проблема обновления с 5.7 до 5.8, как вы указали, когда проблема началась. Сигнатура этого метода изменилась:

"Сигнатура метода renderHttpException класса Illuminate\Foundation\Exceptions\Handler изменилась. Если вы переопределяете этот метод в своем обработчике исключений, вам следует обновить сигнатуру метода на соответствует своему родительскому элементу: "

/**
 * Render the given HttpException.
 *
 * @param  \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface  $e
 * @return \Symfony\Component\HttpFoundation\Response
 */
protected function renderHttpException(HttpExceptionInterface $e);

Laravel 5.8 Документы - Руководство по обновлению - Обработка исключений

...