Laravel 5.8 到 6.x 升级错误 - App\Exceptions\Handler::renderHttpException 声明
Laravel 5.8 to 6.x upgrade error - Declaration of App\Exceptions\Handler::renderHttpException
我最近将项目中的 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
文件更改,所以有人建议如何解决这个...
这是一个 5.7 到 5.8 的升级问题,正如您在问题开始时指出的那样。该方法的签名已更改:
"The renderHttpException
method signature of the Illuminate\Foundation\Exceptions\Handler
class has changed. If you are overriding this method in your exception handler, you should update the method signature to match its parent:"
/**
* Render the given HttpException.
*
* @param \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface $e
* @return \Symfony\Component\HttpFoundation\Response
*/
protected function renderHttpException(HttpExceptionInterface $e);
我最近将项目中的 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
文件更改,所以有人建议如何解决这个...
这是一个 5.7 到 5.8 的升级问题,正如您在问题开始时指出的那样。该方法的签名已更改:
"The
renderHttpException
method signature of theIlluminate\Foundation\Exceptions\Handler
class has changed. If you are overriding this method in your exception handler, you should update the method signature to match its parent:"
/**
* Render the given HttpException.
*
* @param \Symfony\Component\HttpKernel\Exception\HttpExceptionInterface $e
* @return \Symfony\Component\HttpFoundation\Response
*/
protected function renderHttpException(HttpExceptionInterface $e);