在我们的应用程序中使用PHP检查是否安装/存在包(任何版本)的最简洁方法是什么?
基本上,在我们的应用程序中,我们想要使用以下签名调用函数:
bool function hasComposerPackage(string $packageName)
这个函数必须包含什么,以便我们可以执行以下操作:
if (hasComposerPackage('phpunit/phpunit')) {
echo 'PHPUnit is installed!';
}
理想情况下,这需要在没有任何命令行exec调用的情况下发生,并且它不应该在进程中自动加载任何不必要的文件。
答案 0 :(得分:1)
@ user1132363使用shell_exec()
来运行像composer show
这样的东西是确定的唯一方法,但你似乎拒绝这条路线。我不确定你拒绝的原因,这是你问题的 解决方案。没有其他可靠的手段。使用class_exists
也是不可靠的,因为类名可以在包中更改。
那就是说,我认为这里有一个更大的问题,你不是在问:你实际试图解决什么问题?在,为什么你需要检查是否安装了包?