当前位置: 首页 > 知识库问答 >
问题:

Composer/PHP:如何检查是否安装了Composer包?

欧阳何平
2023-03-14

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

基本上,在我们的应用程序中,我们希望调用具有以下签名的函数:

bool函数hasComposerPackage(字符串$PackageName)

这个函数必须包含什么,这样我们才能做这样的事情:

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

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

共有1个答案

唐恺
2023-03-14

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

有一个新类Composer\InstalledVersions,它在每个项目中自动加载,并在运行时可用。它允许您检查在您自己的项目运行时存在哪些包/版本。

@用户1132363使用shell_exec()运行类似于composer show程序是唯一可以确定的方法,但您似乎拒绝这样做。我不知道你为什么拒绝,这是解决你问题的办法。没有其他可靠的方法。使用class\u exists也不可靠,因为类名可能在包中更改。

也就是说,我认为这里有一个更大的问题你没有问:你到底想解决什么问题?与中一样,为什么需要检查包是否已安装?

 类似资料:
  • 我只是想知道composer如何在检查需求时检查要使用哪个php。我使用MacOS和终端类型: 结果是这样的: 当我检查php版本时: 结果是: PHP 5.6.10 (cli)(创建时间:2015年6月12日14:08:56)版权所有(c)1997-2015 PHP Group Zend Engine v 2 . 6 . 0,版权所有(c)1998-2015 Zend Technologies

  • 我有一个作曲家。包含内容的json: 尝试通过以下命令安装composer时, 我收到以下错误消息: 无法将您的需求解析为可安装的软件包集。 完整的错误日志: 我是新来的。我错过了什么?

  • 第一次安装Composer,已经安装了Composer-Setup.exe,在命令行输入composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/,执行报错了,有大佬能帮我看下怎么解决吗?感谢!

  • 我正在尝试在我的电脑上运行laravel,但是我很难在我的机器上安装这个资源,下面是linux终端的一点错误 无法创建文件 /var/www/html/composer.phar:fopen(/var/www/html/composer.phar):打开流失败:权限被拒绝下载失败:fopen(/var/www/html/composer.phar):未能打开流:权限被拒绝f写()期望参数1是资源,

  • 我尝试安装hyper ledger composer CLI&它的开发工具,但出现了错误。就像 npm警告不推荐的加密@0.0.3:不再支持此包。它现在是一个内置的节点模块。如果您依赖于加密,您应该切换到内置的加密。npm WARN deprecated Jade@1.11.0:Jade已重命名为pug,请安装最新版本的pug,而不是Jade npm WARN deprecated transfo

  • 下面是我的存储库:https://github.com/merajsiddiqui/ibm-watson 如果您能指导我成功发布,那么任何人都可以下载这个库,我将不胜感激。