Laravel - 即使 PHP 版本是必需的,也无法安装包

Posted

技术标签:

【中文标题】Laravel - 即使 PHP 版本是必需的,也无法安装包【英文标题】:Laravel - Cannot install package even though PHP version is the required one 【发布时间】:2019-12-13 04:50:17 【问题描述】:

在我的项目中安装一些作曲家包时遇到问题。

Problem 1
    - Installation request for spatie/image-optimizer 1.1.5 -> satisfiable by spatie/image-optimizer[1.1.5].
    - spatie/image-optimizer 1.1.5 requires php ^7.2 -> your PHP version (7.1.14) does not satisfy that requirement.
  Problem 2
    - Installation request for spatie/laravel-feed 2.2.1 -> satisfiable by spatie/laravel-feed[2.2.1].
    - spatie/laravel-feed 2.2.1 requires php ^7.2 -> your PHP version (7.1.14) does not satisfy that requirement.
  Problem 3
    - Installation request for spatie/laravel-newsletter 4.5.0 -> satisfiable by spatie/laravel-newsletter[4.5.0].
    - spatie/laravel-newsletter 4.5.0 requires php ~7.2 -> your PHP version (7.1.14) does not satisfy that requirement.
  Problem 4
    - Installation request for spatie/laravel-referer 1.4.0 -> satisfiable by spatie/laravel-referer[1.4.0].
    - spatie/laravel-referer 1.4.0 requires php ^7.2 -> your PHP version (7.1.14) does not satisfy that requirement.
  Problem 5
    - Installation request for spatie/laravel-sitemap 5.3.0 -> satisfiable by spatie/laravel-sitemap[5.3.0].
    - spatie/laravel-sitemap 5.3.0 requires php ^7.2 -> your PHP version (7.1.14) does not satisfy that requirement.
  Problem 6
    - spatie/image-optimizer 1.1.5 requires php ^7.2 -> your PHP version (7.1.14) does not satisfy that requirement.
    - spatie/image 1.7.2 requires spatie/image-optimizer ^1.0 -> satisfiable by spatie/image-optimizer[1.1.5].
    - Installation request for spatie/image 1.7.2 -> satisfiable by spatie/image[1.7.2].

即使我的 PHP 版本是 7.2.1,这些包也没有通过 composer.json 验证,即无法安装。 PHP CLI 版本也是7.2.1。 (使用标准程序phpinfo()php -v 对它们进行了检查。

我使用的是 MAMP PRO 版本 4.4.1,列出的最新版本中的可配置 PHP 版本是 7.2.1(这没关系,因为这些软件包的要求范围从 7.17.2

https://github.com/spatie/image-optimizer/blob/master/composer.json#L19

https://github.com/spatie/laravel-newsletter/blob/master/composer.json#L20

https://github.com/spatie/laravel-feed/blob/master/composer.json#L33

https://github.com/spatie/laravel-referer/blob/master/composer.json#L19

https://github.com/spatie/laravel-sitemap/blob/master/composer.json#L19

正如我已经说过的,PHP 版本在 Apache 端和 CLI 端以及 MAMP PRO GUI 上看起来都不错。

PHP 7.2.1 (cli) (built: Jan 15 2018 12:20:50) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2017 Zend Technologies

MAMP PRO 配置:

MAMP PRO 主机相关配置:

将 PHP 升级到版本 7.3 可能会解决这个问题,但我想跳过它,因为它必须在没有 MAMP PRO 帮助的情况下手动完成(因为我的 MAMP PRO 版本已获得许可,我需要另一个许可证才能获得其中的内置 PHP 版本)。

谢谢!

【问题讨论】:

【参考方案1】:

除了composer.json 中的a custom version defined 之外,不确定是什么原因造成的:


    "config": 
        "platform": 
            "php": "7.1.14"
        
    ,

要解决此问题,您可以告诉作曲家忽略版本:

composer require spatie/image-optimizer --ignore-platform-reqs

【讨论】:

以上是关于Laravel - 即使 PHP 版本是必需的,也无法安装包的主要内容,如果未能解决你的问题,请参考以下文章

[Route: ] - Laravel 7 缺少必需的参数

为啥即使实现了所有必需的方法,Class 也不会确认协议“WCSessionDelegate”错误

为啥即使实现了所有必需的方法,Class 也不会确认协议“WCSessionDelegate”错误

Laravel“至少和最多”一个字段是必需的

即使值为空,textarea 的“必需”属性也不起作用

即使构建设置具有调试信息格式 = 带有 dSYM 的 Dwarf,Xcode 也不会生成所有必需的 dSYM