PHP擴(kuò)展和包的管理:PEAR、PECL、Composer

擴(kuò)展(Extension)一般偏底層,包(Application,Package)一般偏應(yīng)用。不建議做過(guò)分的區(qū)分,在使用中能夠理解和區(qū)分即可。
對(duì)于他們的管理目前有PEAR、PECL、Composer。

PEAR

PEAR是PHP擴(kuò)展與應(yīng)用庫(kù)(the PHP Extension and Application Repository)的縮寫(xiě)。http://pear.php.net/
Bakken在1999年創(chuàng)立了PEAR項(xiàng)目,目標(biāo)是試圖定義一種標(biāo)準(zhǔn),幫助開(kāi)發(fā)者編寫(xiě)可移植、可重用的代碼,避免重復(fù)發(fā)明“車輪”。代碼均是PHP編寫(xiě)的。
涵蓋了頁(yè)面呈現(xiàn)、數(shù)據(jù)庫(kù)訪問(wèn)、文件操作、數(shù)據(jù)結(jié)構(gòu)、緩存操作、網(wǎng)絡(luò)協(xié)議、WebService 等許多方面,用戶可以通過(guò)下載這些類庫(kù),并適當(dāng)?shù)淖饕恍┒ㄖ埔詫?shí)現(xiàn)自己需要的功能。
但是隨著Git、github等發(fā)展,其逐漸被Composer包管理替代。

PECL

“PHP Extension Community Library”的縮寫(xiě),即PHP 擴(kuò)展庫(kù)。https://pecl.php.net/
PECL是使用C語(yǔ)言開(kāi)發(fā)的,通常用于補(bǔ)充一些用PHP難以完成的底層功能,往往需要重新編譯或者在配置文件中設(shè)置后才能在用戶自己的代碼中使用。
2種使用方式:

  • 命令模式,和pear的命令一致,通過(guò)man pecl顯示此命令的用法
  • 編譯模式,即phpize

Composer

PHP包管理工具,在“幫助開(kāi)發(fā)者編寫(xiě)可移植、可重用的代碼,避免重復(fù)發(fā)明“車輪””上和PEAR有相同的目標(biāo)和思想,但是composer的包一般放在github、bitbucket等上,通過(guò)packagist 可以瀏覽上傳等

以Yaml安裝使用為例

參看https://segmentfault.com/a/1190000000409556

pecl安裝

http://php.net/manual/zh/install.pecl.pear.php

pecl install yaml

這將下載 yaml 的源代碼,編譯之,并將 yaml.so 安裝到擴(kuò)展庫(kù)目錄 extension_dir 中。然后 yaml.so就可以通過(guò) php.ini 加載了。

編譯安裝

http://php.net/manual/zh/install.pecl.phpize.php
有時(shí)候不能用 pecl 安裝命令。這可能是因?yàn)樵诜阑饓竺妫蛘呤且驗(yàn)橄胍惭b的擴(kuò)展庫(kù)還沒(méi)有 PECL 兼容的包,例如 SVN 中尚未發(fā)布的擴(kuò)展庫(kù)。
如果要編譯這種擴(kuò)展庫(kù),可以用更底層的編譯工具來(lái)手工進(jìn)行編譯。phpize 命令是用來(lái)準(zhǔn)備 PHP 擴(kuò)展庫(kù)的編譯環(huán)境的。

$ wget https://pecl.php.net/get/yaml-1.3.0.tgz
$ tar -xzvf yaml-1.3.0.tgz
$ cd yaml-1.3.0
$ phpize
$ ./configure
$ make
$ make install

成功的安裝將創(chuàng)建 yaml.so 并放置于 PHP 的擴(kuò)展庫(kù)目錄 extension_dir 中。需要調(diào)整 php.ini 加入 extension=yaml.so 這一行之后才能使用此擴(kuò)展庫(kù)。
使用 phpize --help 命令可以顯示此命令用法。

composer

可以參看文檔 http://m.itdecent.cn/p/f0b9a319711f

composer require mustangostang/spyc
目前主流的方式,對(duì)于偏底層的擴(kuò)展通過(guò)編譯方式安裝,對(duì)于偏應(yīng)用的通過(guò)composer方式。
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Welcome 目前網(wǎng)絡(luò)上充斥著大量的陳舊信息,讓PHP新手誤入歧途,傳播著錯(cuò)誤的實(shí)踐和糟糕的代碼,這必須得到糾正...
    layjoy閱讀 21,861評(píng)論 7 118
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_閱讀 2,057評(píng)論 0 3
  • ziadoz在 Github發(fā)起維護(hù)的一個(gè)PHP資源列表,內(nèi)容包括:庫(kù)、框架、模板、安全、代碼分析、日志、第三方庫(kù)...
    Gundy_閱讀 6,565評(píng)論 4 192
  • 依賴管理 依賴和包管理庫(kù) Composer/Packagist:一個(gè)包和依賴管理器Composer Install...
    guanguans閱讀 944評(píng)論 0 8
  • 兄弟你瘦了,看這疲備啊,一路風(fēng)塵蓋不住,歲月的臉頰,兄弟你變了,變得沉默了,說(shuō)說(shuō)吧那些放在心里的話兄弟我們的青春就...
    1f362a9d3251閱讀 183評(píng)論 0 0

友情鏈接更多精彩內(nèi)容