![](/img/trans.png)
[英]Composer/PHP: How to check if composer package is installed?
[英]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.