laravel 从 5.6 作曲家升级到 5.7 不起作用

Posted

技术标签:

【中文标题】laravel 从 5.6 作曲家升级到 5.7 不起作用【英文标题】:laravel upgrade to 5.7 from 5.6 composer not working 【发布时间】:2019-03-08 06:39:07 【问题描述】:

我正在将我的 laravel 项目升级到 5.6。当前版本是 5.5.38。我的作曲家文件如下。当我运行 composer update 时,它​​只显示 Loading composer repositories with package information 在终端中更新依赖项(包括 require-dev) 数小时。这会是什么问题?

"require": 
    "php":">=7.1.3",
    "laravel/framework": "5.6.*",
    "fideloper/proxy" : "^4.0",
    "guzzlehttp/guzzle": "~6.0",
    "maatwebsite/excel": "v2.1.*",
    "itsgoingd/clockwork": "1.*",
    "barryvdh/laravel-ide-helper": "^2.2",
    "anchu/ftp": "dev-master",
    "pda/pheanstalk": "~3.0",
    "nesbot/carbon": "1.20",
    "laravelcollective/html": "~5.0",
    "pusher/pusher-php-server": "~3.0",
    "regulus/activity-log": "0.6.*",
    "laravel/tinker": "^1.0"
,
"require-dev": 
    "phpunit/phpunit": "~7.0",
    "phpspec/phpspec": "~2.1",
    "laracasts/generators": "^1.1",
    "symfony/dom-crawler": "~3.1",
    "symfony/css-selector": "~3.1",
    "filp/whoops" : "~2.0"

,

【问题讨论】:

"laravel 从 5.7 升级到 5.6" 升级/降级?你能澄清这一点吗? @SaiyanPrince:我的错误伙伴。从 5.6 升级到 5.7 无论如何我发现了问题所在。问题是我的 PHP 版本。我将 vagrant PHP 版本更新为最新版本并运行 composer update 并且运行良好。 【参考方案1】:

最初的发布者通过升级 PHP 解决了这个问题,但对于其他人(在撰写本文时,Laravel 5.5 仍然是 LTS 版本,所以很快会有很多人升级),Composer 是否应该永远挂起(就像它为我,尽管运行 PHP 7.3):

提示是删除整个 require-dev 部分(仅在您的开发环境中使用的部分)并查看它是否有效,而不是一次重新添加一个包 - 这样做时,您可能使用后续的 Composer 命令(或者更具体地说,Artisan 命令,例如由 Composer 启动的 clear-compiled)会收到类似的错误:

在 Application.php 第 637 行:

找不到类“Laracasts\Generators\GeneratorsServiceProvider”

...在这种情况下,您可能需要在 app/Providers/AppServiceProvider.php::register() 中注释掉相应的行 - 另外,请尝试 composer dump-autoload

另一个非常有用的选项:composer-update --no-scripts

Laravel 5.6 现在使用 Symfony 4,而不是 3(因此您可以切换到“~4.3”) 有一些 Symfony 4 要求:https://symfony.com/doc/4.2/reference/requirements.html

在开始之前提交您现有的 composer.jsoncomposer.lock 副本,以便轻松查看您所做的更改。

【讨论】:

以上是关于laravel 从 5.6 作曲家升级到 5.7 不起作用的主要内容,如果未能解决你的问题,请参考以下文章

从5.5作曲家更新到laravel 5.6失败

将 Laravel 5.4 升级到最新版本 (5.7)

MySQL 从 5.6 升级到 5.7 的 Grails 更改

升级过程中从 5.6 到 5.7 的 AWS RDS MySQL 复制

将 mysql 从 5.6 升级到 5.7 后“在用户表中找不到任何匹配的行”

作曲家在将 laravel 更新到 5.6 时卡在“发生了变化,再次查看所有规则”