[英]How to install a PECL package with composer?
我希望使用 Composer 安装 PEAR 包(特别是来自 pecl.php.net 的 mongodb)。
我可以使用以下 composer.json 从主“梨”频道安装软件包:
{ "repositories": [{
"type": "pear",
"url": "https://pear.php.net"
}],
"require": { "pear-pear/http": "*" }
}
(注意:来自https://getcomposer.org/doc/05-repositories.md#pear的原始示例不起作用)
但我得到:
在任何版本中都找不到请求的包 pear-pecl/mongodb,包名可能有拼写错误
...当我尝试设置“pecl”频道时:
"require": { "pear-pecl/mongodb": "*" }
我可以看到带有pear list-channels
的 pecl pear list-channels
:
$ pear list-channels
Registered Channels:
====================
Channel Alias Summary
doc.php.net phpdocs PHP Documentation team
pear.php.net pear PHP Extension and Application
Repository
pecl.php.net pecl PHP Extension Community Library
我可以使用pear install pecl/mongodb
安装相同的包。
pecl/mongodb
是一个二进制驱动程序。 我看不出 composer 如何能够在本地将它安装到项目中。 我认为您无法通过 Composer 安装任何 PECL 扩展。
Composer 可以管理项目的 PHP 依赖项,这些依赖项需要包含有效的composer.json
文件才能被识别为包。
如果您检查pecl/mongodb repo ,您将看不到这样的东西。 它是一个 C 语言项目,需要作为运行时扩展进行编译和安装。
PECL 扩展并不打算安装在项目上,这样做也没有意义; 但需要为 PHP 运行时安装和启用。 当您运行pear install pecl/mongodb
您正在为所有使用相同运行时的项目安装二进制扩展。
由于 pecl.php.net 存储库已损坏(请参阅https://bugs.php.net/bug.php?id=76719和相关票证),因此无法使用 Composer 安装 PECL 软件包。
它可以添加到 composer.json 中
{ "repositories": [
{ "type": "pear",
"url": "https://pecl.php.net"
}],
"require": {
"pear-pecl/mongodb": "*"
}}
但由于https://pecl.php.net/rest/c/Authentication/packagesinfo.xml 中的XML 损坏,安装失败
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.