laravel 新博客无法运行 mockery/mockery 1.4.0

laravel new blog not work mockery/mockery 1.4.0

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

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.

当 Laravel 自己说至少 php7.2.5 时,为什么要阅读 php7.3 ???

运行 composer update.

原因:

您的 PHP 版本太低。您已安装 7.2.23,mockery/mockery 1.4 需要 7.3.0

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

My bug report can be found here

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

我今天在新 Laravel 项目中遇到了同样的问题。 composer.json 文件显示 "mockery/mockery": "^1.3.1" 但仍然显示相同的错误。同时删除 composer.lock 文件和 运行 composer install.

假设您正在尝试创建一个名为 blog 的新 laravel 项目,这就是我在 运行ning laravel new blog[=22= 之后修复错误的方法]

  1. cd 到 blog

  2. 运行 composer update

  3. 创建一个 .env 文件。您可以只复制 .env.example 并将副本重命名为 .env。如果您尝试使用 php artisan serve 启动开发服务器并且应用程序启动时出现 500 错误,运行 这些命令:

    php artisan key:generate

    php artisan cache:clear

    php artisan config:clear

    composer dump-autoload

我在尝试创建新的 Laravel 应用程序时遇到问题,我使用以下命令更新了 php 版本并且它有效。

sudo apt install software-properties-common

sudo add-apt-repository ppa:ondrej/php

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

你可以运行

composer create-project --prefer-dist laravel/laravel <project_name>

它会自动回退到 mockery^1.3.1

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

composer install

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

  • 删除供应商中的 composer.lock 文件和自动加载文件,即项目中的 vendor/autoload
  • 从 php.net
  • 升级 php 版本
  • 运行 composer install --no scripts
  • 运行作曲家更新
  • php artisan 迁移
  • php artisan key:generate

我也遇到过这些问题

Problem 1 - Installation request for facade/ignition-contracts 1.0.2 -> satisfiable by facade/ignition-contracts[1.0.2]. - facade/ignition-contracts 1.0.2 requires php ^7.3|^8.0 -> your PHP version (7.2.34) does not satisfy that requirement.

Problem 2 - Installation request for mockery/mockery 1.4.2 -> satisfiable by mockery/mockery[1.4.2]. - mockery/mockery 1.4.2 requires php ^7.3 || ^8.0 -> your PHP version (7.2.34) does not satisfy that requirement.

Problem 3 - facade/ignition-contracts 1.0.2 requires php ^7.3|^8.0 -> your PHP version (7.2.34) does not satisfy that requirement. - nunomaduro/collision v4.2.0 requires facade/ignition-contracts ^1.0 -> satisfiable by facade/ignition-contracts[1.0.2]. - Installation request for nunomaduro/collision v4.2.0 -> satisfiable by nunomaduro/collision[v4.2.0].

我删除了 composer.lock 文件并执行了 composer install 命令。

我的问题解决了。