繁体   English   中英

composer如何查看php版本?

[英]How composer check php version?

我只是想知道作曲家在检查需求时如何检查使用哪个 php 。 我使用 MacOS 和终端类型:

composer require phpunit/phpunit

结果是这样的:

Problem 1
- phpunit/phpunit 5.0.4 requires php >=5.6 -> your PHP version (5.5.27) or "config.platform.php" value does not satisfy that requirement....

当我检查 php 版本时:

php -v

结果是:

PHP 5.6.10 (cli)(构建时间:2015 年 6 月 12 日 14:08:56) 版权所有 (c) 1997-2015 PHP Group Zend Engine v2.6.2.0,版权所有 (c),Xdebug9-999。版权所有 (c) 2002-2014,作者 Derick Rethans

这是:

which php

php:别名为/Applications/MAMP/bin/php/php5.6.10/bin/php

有人可以解释一下吗。 提前致谢!

如果您指定 debug verbosity -vvv ,Composer 可以告诉您它正在运行的 PHP 版本。

我喜欢用about命令运行它,因为输出相对较短。

composer -vvv about

示例输出:

... 在 Darwin / 18.6.0 上运行 1.8.5 (2019-04-09 17:46:47) 和 PHP 7.3.5 ...

编辑:这比我预期的更有趣,所以这是一个输出更清晰的版本:

composer -vvv about 2>&1 | grep "PHP"

在 MacOs X 上,php 的默认安装位于 /usr/bin。 如果你升级你的 php,它很可能会安装在其他地方(比如 /usr/local/php5),或者如果你使用 MAMP 或其他东西,它会安装在其他地方。 只需确保在遍历 PATH 时第一次出现的 php 与您的网络服务器使用的版本相同。 (例如在您的 PATH 中 /usr/bin 之前有 /usr/local/php5/bin )。 那将解决您的问题。

如果您使用了软件包安装方法,例如 Ubuntu 上的 apt-get,则该可执行文件可能会包含一个“shebang”,该“shebang”指向应该用于运行该特定 Composer 文件的特定 php。

使用命令composer ,cli 将首先解析要使用的二进制文件。 通过运行which composer你可以找到它是什么二进制文件。

$ which composer
/usr/bin/composer

一旦你知道了,你就可以打开文件,例如使用 vim: vim /usr/bin/composer (通常它需要超级用户访问权限才能修改二进制文件,所以你不应该把作曲家搞砸了)。

在composer二进制文件的第一行应该是一个shebang,可能看起来像#!/usr/bin/php ,它会指示composer可执行文件它应该如何运行。

然后,您可以直接调用该 php 二进制文件以验证其版本:

/usr/bin/php -v

(在这里分享这个是因为我一直在寻找它降落在这里,但没有什么让我满意,所以我会分享给那些出于同样原因降落在这里的人:)

使用以下命令,您可以检查哪些 composer 包依赖于特定的 php 版本:

composer depends php | grep 8.1

将 output 类似于:

symfony/console                    v6.1.4  requires php (>=8.1)                  
symfony/css-selector               v6.1.3  requires php (>=8.1)                  
symfony/deprecation-contracts      v3.1.1  requires php (>=8.1)                  
symfony/error-handler              v6.1.3  requires php (>=8.1)                  
symfony/event-dispatcher           v6.1.0  requires php (>=8.1)                  
symfony/event-dispatcher-contracts v3.1.1  requires php (>=8.1)                  
symfony/finder                     v6.1.3  requires php (>=8.1)                  
symfony/http-foundation            v6.1.4  requires php (>=8.1)                  
symfony/http-kernel                v6.1.4  requires php (>=8.1)                  
symfony/mailer                     v6.1.4  requires php (>=8.1)                  
symfony/mime                       v6.1.4  requires php (>=8.1)                  
symfony/process                    v6.1.3  requires php (>=8.1)                  
symfony/routing                    v6.1.3  requires php (>=8.1)                  
symfony/service-contracts          v3.1.1  requires php (>=8.1)                  
symfony/string                     v6.1.4  requires php (>=8.1)                  
symfony/translation                v6.1.4  requires php (>=8.1)                  
symfony/translation-contracts      v3.1.1  requires php (>=8.1)                  
symfony/var-dumper                 v6.1.3  requires php (>=8.1)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM