擴展(Extension)一般偏底層希太,包(Application克饶,Package)一般偏應(yīng)用。不建議做過分的區(qū)分跛十,在使用中能夠理解和區(qū)分即可彤路。
對于他們的管理目前有PEAR、PECL芥映、Composer洲尊。
PEAR
PEAR是PHP擴展與應(yīng)用庫(the PHP Extension and Application Repository)的縮寫。http://pear.php.net/
Bakken在1999年創(chuàng)立了PEAR項目奈偏,目標是試圖定義一種標準坞嘀,幫助開發(fā)者編寫可移植、可重用的代碼惊来,避免重復(fù)發(fā)明“車輪”丽涩。代碼均是PHP編寫的。
涵蓋了頁面呈現(xiàn)裁蚁、數(shù)據(jù)庫訪問矢渊、文件操作、數(shù)據(jù)結(jié)構(gòu)枉证、緩存操作矮男、網(wǎng)絡(luò)協(xié)議、WebService 等許多方面室谚,用戶可以通過下載這些類庫毡鉴,并適當?shù)淖饕恍┒ㄖ埔詫崿F(xiàn)自己需要的功能崔泵。
但是隨著Git、github等發(fā)展猪瞬,其逐漸被Composer包管理替代憎瘸。
PECL
“PHP Extension Community Library”的縮寫,即PHP 擴展庫陈瘦。https://pecl.php.net/
PECL是使用C語言開發(fā)的幌甘,通常用于補充一些用PHP難以完成的底層功能,往往需要重新編譯或者在配置文件中設(shè)置后才能在用戶自己的代碼中使用甘晤。
2種使用方式:
- 命令模式含潘,和pear的命令一致饲做,通過man pecl顯示此命令的用法
- 編譯模式线婚,即phpize
Composer
PHP包管理工具,在“幫助開發(fā)者編寫可移植盆均、可重用的代碼塞弊,避免重復(fù)發(fā)明“車輪””上和PEAR有相同的目標和思想,但是composer的包一般放在github泪姨、bitbucket等上游沿,通過packagist 可以瀏覽上傳等
以Yaml安裝使用為例
參看https://segmentfault.com/a/1190000000409556
pecl安裝
http://php.net/manual/zh/install.pecl.pear.php
pecl install yaml
這將下載 yaml 的源代碼,編譯之肮砾,并將 yaml.so 安裝到擴展庫目錄 extension_dir 中诀黍。然后 yaml.so就可以通過 php.ini 加載了。
編譯安裝
http://php.net/manual/zh/install.pecl.phpize.php
有時候不能用 pecl 安裝命令仗处。這可能是因為在防火墻后面眯勾,或者是因為想要安裝的擴展庫還沒有 PECL 兼容的包,例如 SVN 中尚未發(fā)布的擴展庫婆誓。
如果要編譯這種擴展庫吃环,可以用更底層的編譯工具來手工進行編譯。phpize 命令是用來準備 PHP 擴展庫的編譯環(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 的擴展庫目錄 extension_dir 中郁轻。需要調(diào)整 php.ini 加入 extension=yaml.so 這一行之后才能使用此擴展庫。
使用 phpize --help 命令可以顯示此命令用法文留。
composer
可以參看文檔 http://www.reibang.com/p/f0b9a319711f
composer require mustangostang/spyc