Laravel Composer 错误的 PHP 版本问题

composer.json

Composer detected issues in your platform: Your Composer dependencies require a PHP version ">= 7.4.0. You are running 7.2

Check Platform 检查平台

Composer v2 引入了新功能 Check Platform,可在自动加载初始化之前检查 PHP 版本。如果将此选项设置为 false,它将不会在自动加载器引导程序中创建 project-path/vendor/composer/platform_check.php。

如果 PHP 版本不匹配,它会在引导程序中加载并终止应用程序。

如果不添加此配置,那么默认在/vendor/composer下面创建platform_check.php文件。

一个正常的 platform_check.php 看起来像

/vendor/composer/platform_check.php

代码如下:

<?php

// platform_check.php @generated by Composer

$issues = array();

if (!(PHP_VERSION_ID >= 70400)) {
    $issues[] = 'Your Composer dependencies require a PHP version ">= 7.4.0". You are running ' . PHP_VERSION . '.';
}

if ($issues) {
    if (!headers_sent()) {
        header('HTTP/1.1 500 Internal Server Error');
    }
    if (!ini_get('display_errors')) {
        if (PHP_SAPI === 'cli' || PHP_SAPI === 'phpdbg') {
            fwrite(STDERR, 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . implode(PHP_EOL, $issues) . PHP_EOL.PHP_EOL);
        } elseif (!headers_sent()) {
            echo 'Composer detected issues in your platform:' . PHP_EOL.PHP_EOL . str_replace('You are running '.PHP_VERSION.'.', '', implode(PHP_EOL, $issues)) . PHP_EOL.PHP_EOL;
        }
    }
    trigger_error(
        'Composer detected issues in your platform: ' . implode(' ', $issues),
        E_USER_ERROR
    );
}

解决方案1:

按照它的要求去升级你的php版本

解决方案2 :

在 composer.json 配置部分添加平台检查选项

"platform-check": false

它将显示在config中

"config": {
     "preferred-install": "dist",
     "sort-packages": true,
     "optimize-autoloader": true,
     "platform-check": false
 },

之后,您需要运行

composer update 

composer更新后会有一个文件

platform_check.php

上面这个文件将被删除。

下面是检测代码删除之前,之后 代码发生的变化。

代码删除之前:

platform_check.php 删除之前

删除之后:

platform_check.php
删除之后: