在我们的应用程序中使用PHP检查包(任何版本)是否已安装/存在的最干净的方法是什么?
基本上,在我们的应用程序中,我们希望调用具有以下签名的函数:
bool函数hasComposerPackage(字符串$PackageName)
这个函数必须包含什么,这样我们才能做这样的事情:
if (hasComposerPackage('phpunit/phpunit')) {
echo 'PHPUnit is installed!';
}
理想情况下,这需要在没有任何命令行exec调用的情况下发生,并且在这个过程中不应该自动加载任何不必要的文件。
编辑: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 如果您能指导我成功发布,那么任何人都可以下载这个库,我将不胜感激。