gpt4 book ai didi

php - Composer /PHP : How to check if composer package is installed?

转载 作者:行者123 更新时间:2023-12-03 23:18:45 25 4
gpt4 key购买 nike

在我们的应用程序中使用 PHP 检查是否安装/存在包(任何版本)的最干净的方法是什么?

基本上,在我们的应用程序中,我们想要调用具有以下签名的函数:
bool function hasComposerPackage(string $packageName)
这个函数必须包含什么,以便我们可以执行以下操作:

if (hasComposerPackage('phpunit/phpunit')) {
echo 'PHPUnit is installed!';
}

理想情况下,这需要在没有任何命令行 exec 调用的情况下发生,并且不应在此过程中自动加载任何不必要的文件。

最佳答案

编辑:Composer 2 现在支持这个! https://blog.packagist.com/composer-2-0-is-now-available/

There is a new class, Composer\InstalledVersions, which is autoloaded in every project and is available at runtime. It allows you to check which packages/versions are present at runtime of your own project.


@user1132363 使用 shell_exec()运行类似 composer show 的东西是唯一确定的方法,但你似乎拒绝想要走这条路。我不知道你为什么拒绝,这是 解决您的问题。没有其他可靠的方法。使用 class_exists也不可靠,因为类名可以在包中更改。
也就是说,我认为这里有一个更大的问题,你没有问:你实际上试图解决什么问题?就像,为什么需要检查是否安装了软件包?

关于php - Composer /PHP : How to check if composer package is installed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42604370/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com