laravel新博客不工作Mockry/Mockry 1.4.0

laravel新博客不工作Mockry/Mockry 1.4.0,laravel,composer-php,Laravel,Composer Php,今天我想用这个命令创建一个新的项目 laravel new blog 但是我得到了这个错误 Crafting application... Loading composer repositories with package information Installing dependencies (including require-dev) from lock file Your requirements could not be resolved to an installable set

今天我想用这个命令创建一个新的项目

laravel new blog
但是我得到了这个错误

Crafting application...
Loading composer repositories with package information
Installing dependencies (including require-dev) from lock file
Your requirements could not be resolved to an installable set of packages.

  Problem 1
    - Installation request for mockery/mockery 1.4.0 -> satisfiable by mockery/mockery[1.4.0].
    - mockery/mockery 1.4.0 requires php ^7.3.0 -> your PHP version (7.2.23) does not satisfy that requirement.

当拉雷维尔自己说至少要读php7.2.5时,为什么要读php7.3?

运行
编写器更新

原因:

您的PHP版本太低。您已经安装了7.2.23,并且
mockry/mockry
1.4需要7.3.0

最好的解决方案是升级PHP版本。或者,您可以将Mockry的版本降低到,这只需要PHP5.6或更高版本


从2020年5月21日起,
laravel new __
使用的zip文件将尝试安装
mockry/mockry
1.4版。这不适用于7.3以下的PHP版本。为了解决这个问题,运行composer update,mockry将被降级到兼容的版本。

我今天遇到了新的Laravel项目的同样问题。
composer.json
文件显示了
“mockry/mockry”:“^1.3.1”
,但仍然显示相同的错误。同时删除
composer.lock
文件并运行
composer安装

假设您正在尝试创建一个名为
blog
的新laravel项目,这就是我在运行
laravel new blog

  • cd进入
    博客

  • 运行
    composer更新

  • 创建一个
    .env
    文件。您只需复制
    .env.example
    并将副本重命名为
    .env
    。如果您尝试使用
    php artisan serve
    启动dev服务器,但应用程序启动时出现500个错误,请运行以下命令:

    php artisan密钥:生成

    php artisan缓存:清除

    php artisan配置:清除

    composer转储自动加载


  • 我在尝试创建新的Laravel应用程序时遇到了这个问题,我使用以下命令更新了php版本,它成功了

    sudo-apt-install通用软件属性

    sudo添加apt存储库ppa:ondrej/php

    sudo-apt-install-y php7.4 php7.4-gd php7.4-mbstring php7.4-xml

    您只需运行

    composer创建项目——首选dist-laravel/laravel


    它将自动返回到
    mockry ^1.3.1

    删除
    composer.lock
    文件并再次运行composer


    composer安装

    这可能是过时的,这里的问题是php需要更新到兼容的版本

    • 删除供应商中的composer.lock文件和自动加载文件,即项目中的供应商/自动加载文件
    • 从php.net升级php版本
    • 运行composer安装--无脚本
    • 运行编写器更新
    • php artisan迁移
    • php artisan密钥:生成

      • 我也面临这些问题

        问题1 -立面/点火合同1.0.2的安装请求->立面/点火合同可满足[1.0.2]。 -facade/ignition contracts 1.0.2需要php^7.3 | ^8.0->您的php版本(7.2.34)不满足该要求

        问题2 -Mockry/Mockry 1.4.2->可满足Mockry/Mockry[1.4.2]的安装请求。 -Mockry/Mockry 1.4.2需要php^7.3 | | ^8.0->您的php版本(7.2.34)不满足该要求

        问题3 -facade/ignition contracts 1.0.2需要php^7.3 | ^8.0->您的php版本(7.2.34)不满足该要求。 -nunomaduro/collision v4.2.0需要外观/点火合同^1.0->外观/点火合同可满足[1.0.2]。 -nunomaduro/collision v4.2.0的安装请求->可由nunomaduro/collision[v4.2.0]满足

        我删除了
        composer.lock
        文件并执行了
        composer安装
        命令


        我的问题解决了。

        奇怪。当前版本的Laravel只需要Mockry1.3。如何将Mockry/Mockry版本更改为1.3.1在composer.json中进行更改,然后运行composer update。升级PHP时,Laravel文档表明Laravel(及其依赖项)只需要7.2.5+,默认情况下,它只需要Mockry 1.3。我不确定OP是如何把它搞得一团糟,迫使v1.4成为必需的。@ceejayoz
        laravel/installer
        下载[这个zip文件](cabinet.laravel.com/latest.zip),并在上面运行composer install。的确,composer.json只需要
        ^1.3.1
        mockry/mockry
        ,但该zip中的composer.lock文件列出了
        mockry/mockry
        版本
        1.4.0
        composer更新可能会修复它。
        laravel/installer
        的主分支,我怀疑这就是问题所在。长话短说,我不认为OP把它搞砸了。@Joundill哦,很有趣,我没有意识到
        laravel new
        拉了一个
        作曲家。锁定
        。请给你的答案添加一些解释,以便其他人可以从中学习。为什么删除
        composer.lock
        会有帮助?在
        composer安装后直接运行
        composer update
        的原因是什么?删除composer.lock文件的原因是它试图找到符合composer要求的依赖项的兼容版本。json文件,它将安装依赖项的确切版本。在我自己的例子中,我克隆了一个Laravel8项目&我的php版本更低,所以我删除了composer.lock和autoload文件。运行composer安装命令运行composer更新然后我执行了migrations命令以及key:generate命令请通过编辑将所有解释添加到您的答案中。另外,请解释为什么删除锁文件会产生与运行
        composer update
        不同的结果-两者都会重新计算依赖项