簡體   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