繁体   English   中英

如何使用composer安装PECL包?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM