摘要:的包管理器是,用來(lái)瀏覽并搜索查看最新發(fā)行版下載。的包管理器是下一代的,使用編寫(xiě),以格式發(fā)布。二發(fā)布時(shí)間軸三安裝與使用安裝主要是安裝和這兩個(gè)包管理器,然后通過(guò)包管理器安裝其他。
PHP社區(qū)提供了幾個(gè)管理擴(kuò)展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情況下去使用這些工具必然會(huì)出現(xiàn)困惑,所以下面就簡(jiǎn)單介紹下這幾個(gè)管理工具。一、簡(jiǎn)介
下面簡(jiǎn)要介紹 Pear、Pear package、Pear installer、Pear2、Pyrus、Composer、Pecl。
PearPear 是 PHP 擴(kuò)展與應(yīng)用庫(kù)(the PHP Extension and Application Repository)的縮寫(xiě),是一個(gè) PHP 擴(kuò)展及應(yīng)用的一個(gè)代碼倉(cāng)庫(kù)。Pear 倉(cāng)庫(kù)代碼是以包(package)分區(qū),每一個(gè) Pear package 都是一個(gè)獨(dú)立的項(xiàng)目有著自己獨(dú)立的開(kāi)發(fā)團(tuán)隊(duì)、版本控制、文檔和其他包的依賴關(guān)系信息。Pear package 以 phar、tar 或 zip 發(fā)布。
Pear 的包管理器是Pear installer,用來(lái)瀏覽并搜索 Pear package、查看最新發(fā)行版、下載 Pear package。
Pear2Pear2 是下一代的 Pear 代碼倉(cāng)庫(kù),在使用性、速度、安全上都有改進(jìn)。Pear2 的包管理器 Pyrus 是下一代的 Pear installer,使用 PHP 編寫(xiě),以 phar 格式發(fā)布。
ComposerComposer 是 PHP 中的應(yīng)用程序級(jí)的包依賴管理器。用來(lái)管理(安裝/更新)你項(xiàng)目中申明的依賴庫(kù)。Composer 的包信息存儲(chǔ)庫(kù)是 Packagist。
PeclPecl 是 PHP 擴(kuò)展社區(qū)倉(cāng)庫(kù)(The PHP Extension Community Library)的縮寫(xiě),Pecl 擴(kuò)展庫(kù)的包(package)是使用 C、C++ 編寫(xiě)的動(dòng)態(tài)鏈接庫(kù)擴(kuò)展,在編譯安裝后通過(guò) php.ini 加載,隨 PHP 進(jìn)程被裝入內(nèi)存。
二、發(fā)布時(shí)間軸 三、Mac 安裝與使用 PearPear 安裝主要是安裝 Pear installer 和 Pyrus 這兩個(gè)包管理器,然后通過(guò)包管理器安裝其他 Pear package。
如果你安裝的是PHP (> 4.3.0),并且編譯時(shí)并未使用“./configure flag --without-pear”選項(xiàng),那么 Pear installer 的安裝已集成在系統(tǒng)里。但如果你安裝的 PHP(< 4.3.0),那么你就需要手動(dòng)安裝 Pear installer。
下載 go-pear.phar 文件
$ curl -O https://pear.php.net/go-pear....
全局安裝 Pear 命令和安裝一些 Pear 包
$ sudo php -d detect_unicode=0 go-pear.phar
配置 Pear 進(jìn)行安裝
1) 更改 Installation Base 位置
輸入1,然后按下 Enter
輸入 /usr/local/pear,然后按下 Enter
2) 更改 Binaries directory 位置
輸入4,然后按下 Enter
輸入 /usr/local/bin,然后按下 Enter
3)再按下 Enter 一次,讓其默認(rèn)
4)安裝完成
查看版本
$ pear -V
安裝 Pear package 名稱為 mypear
$ sudo pear install mypear
使用安裝包 mypear
因?yàn)?Pear 庫(kù)中的包都是由 PHP 編寫(xiě)的的,所以使用只需要在代碼層手動(dòng) require/include 引入文件
Pyrus 正常工作需要 phar、simplexml、libxml2、spl 和 pcre 擴(kuò)展,在 PHP (> 5.3.0) 中是默認(rèn)開(kāi)啟的
下載文件 pyrus.phar
$ wget http://pear2.php.net/pyrus.phar
第一次使用先運(yùn)行php pyrus.phar
$ php pyrus.phar
$ 輸入 yes,然后按下Enter
$ 輸入你安裝包存放的位置 /Users/my-project,然后按下Enter
$ 安裝完成
查看版本
$ php pyrus.phar --version
安裝 Pear package 名稱為 mypear
$ php pyrus.phar install mypear
使用安裝包 mypear
(1)因?yàn)?Pear 庫(kù)中的包都是由 PHP 編寫(xiě)的,所以使用只需要在代碼層手動(dòng) require/include 引入文件,但require_once 不被允許
(2)Pyrus 可以使用自帶的 autoloader 自動(dòng)引入
PeclPecl 可以通過(guò) Pear 的 Package Manager 的安裝管理方式,來(lái)進(jìn)行下載和安裝。
安裝成功
而使用 Pecl 擴(kuò)展庫(kù)必須要經(jīng)過(guò)下載擴(kuò)展庫(kù)、編譯、安裝、然后加載。而加載
下載 Pecl 擴(kuò)展庫(kù) extname
(1)通過(guò) Pear 下載 Pecl 擴(kuò)展庫(kù)
$ pecl install extname
(2)官網(wǎng)下載:http://pecl.php.net/
(3)SVN 下載,大多數(shù) Pecl 擴(kuò)展庫(kù)也在 SVN 中
$ svn checkout http://svn.php.net/repository/pecl/extname/trunk extname
編譯、安裝
(1)通過(guò) Pear 下載編譯共享 Pecl 擴(kuò)展庫(kù) extname
$ pecl install extname 這個(gè)過(guò)程下載 extname 的源代碼,編譯之,并將創(chuàng)建 extname.so 放置于 PHP 的擴(kuò)展庫(kù)目錄中。
(2)通過(guò) phpize 編譯共享 Pecl 擴(kuò)展庫(kù) extname
1. 下載 extname 源代碼 2. 進(jìn)入 extname 目錄 $ cd extname 3. 準(zhǔn)備 PHP 擴(kuò)展庫(kù)的編譯環(huán)境 $ phpize 4. 編譯 $ ./configure $ make $ make install 成功的安裝并將創(chuàng)建 extname.so 并放置于 PHP 的擴(kuò)展庫(kù)目錄中。
加載
(1)通過(guò) php.ini 加載 extname.so
1):Windows上是加載擴(kuò)展的動(dòng)態(tài)鏈接庫(kù)后綴是“.dll”,在 Unix 或 Linux 上是“.so” 2):修改 php.ini,擴(kuò)展已經(jīng)在 php.ini 里。如果有 extension=extname.so 那么去掉前面“;”,或者直接添加 extension=extname.so
按照擴(kuò)展文檔方式啟用擴(kuò)展
ComposerComposer 需要 PHP(> 5.3.2)
下載 composer.phar 到當(dāng)前目錄
$ curl -sS https://getcomposer.org/installer | php
運(yùn)行 Composer
$ php composer.phar
查看版本
$ php composer.phar -V
下載安裝包 package
$ php composer.phar install package
使用安裝包
(1)使用 autoloader 自動(dòng)加載
因?yàn)?Composer 生成了一個(gè) vendor/autoload.php 文件,可以直接 require/include 引入這個(gè)文件。
四、比較 擴(kuò)展與包PHP的擴(kuò)展(extension)這里應(yīng)稱為“模塊(module)”是 C、C++ 編寫(xiě)的功能合集,而包(package)是 PHP 編寫(xiě)的功能合集
PHP的包(package)以動(dòng)態(tài)鏈接 .dll、.so 形式加載,而包則是直接引入通過(guò) require/include 方式加載
所以,Pecl 和 Pear 是互為補(bǔ)充,管理者擴(kuò)展與包。
Pear installer 與 ComposerComposer 雖然比 Pear 晚出現(xiàn)10多年,但就像 Pear 官方文檔里面 “If you read tweets and forums you’ll get that impression that nobody uses PEAR anymore, and everyone is using composer now.” 說(shuō)的,現(xiàn)在所有人都是在使用 Composer。因?yàn)?Pear installer 能的 Composer 都能做,并且能做的更好,但 Composer 能做的,Pear installer 卻不一定能做。舉兩個(gè)例子:
Pear installer 作為系統(tǒng)級(jí)軟件包,通常需要 root 或管理員權(quán)限。并且對(duì)于一臺(tái)機(jī)器上多個(gè)項(xiàng)目很難使用不同版本庫(kù),但 Composer 只需你在項(xiàng)目根目錄下修改 composer.json 文件后 update 就可以對(duì)該項(xiàng)目的依賴庫(kù)進(jìn)行版本的修改。
Pear installer 依賴關(guān)系模糊,但 Composer 有申明依賴關(guān)系的文件 composer.json(位于項(xiàng)目根目錄下),并且還有 composer.lock(位于項(xiàng)目根目錄下)文件類似鎖文件會(huì)使任何人建立項(xiàng)目都將下載與指定版本完全相同的依賴,從而減輕潛在的錯(cuò)誤對(duì)部署的影響。
五、使用 Composer 安裝 Pear package既然 Pear installer 已經(jīng)完全被 Composer 取代了,那么 Pear 庫(kù)里面的一些 Pear package 我們是否也可以使用 Composer 包管理器來(lái)安裝?畢竟 Pear 庫(kù)有 Packagist(Composer 的包信息存儲(chǔ)庫(kù)) 沒(méi)有的擴(kuò)展包。所以下面介紹如何使用 Composer 來(lái)安裝 Pear package。
修改 Composer 獲取包的渠道為“pear”,require 下載該渠道下的擴(kuò)展包,并將 pear-pear2 作為包前綴避免沖突
{ "repositories": [ { "type": "pear", "url": "https://pear2.php.net" } ], "require": { "pear-pear2.php.net/PEAR2_Text_Markdown": "*", "pear-pear2/PEAR2_HTTP_Request": "*" } }
完成后,代碼位于項(xiàng)目目錄 vendor 文件夾中。應(yīng)用時(shí)直接使用 autoloader 自動(dòng)加載
六、總結(jié)如果是包使用 Composer 安裝使用,如果是涉及底層擴(kuò)展則使用 Pecl(也可以使用其他編譯安裝方式) 安裝。
七、參考資料PEAR簡(jiǎn)介:用PEAR來(lái)寫(xiě)你的下一個(gè)php程序
基于 PHP5 面向?qū)ο筇匦缘?PECL 擴(kuò)展 Perl 與 PDO 編程
PECL 擴(kuò)展庫(kù)安裝
What is the difference between PEAR and PEAR2?
PHP7 學(xué)習(xí)筆記
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/30710.html
摘要:本文簡(jiǎn)要回顧相關(guān)概念和用法。相比之下已是明日黃花。分別對(duì)應(yīng)的命令是根據(jù)關(guān)鍵字查找依賴包,例如查找本人發(fā)布的包。作為目前包依賴管理的最佳工具,值得每一位開(kāi)發(fā)人員掌握。 轉(zhuǎn)載請(qǐng)注明文章出處:https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請(qǐng)求 cookie web響應(yīng) session 數(shù)據(jù)庫(kù)操作 加解密 Composer是PHP...
摘要:對(duì)程序員來(lái)說(shuō),阻礙幸福感最大的因素應(yīng)該是那個(gè)偉大的墻了。所幸國(guó)內(nèi)有或者阿里云這樣的云服務(wù)商提供鏡像加速服務(wù),可直接搜索鏡像加速,添加這些服務(wù)商提供的地址即可。 對(duì)程序員來(lái)說(shuō),阻礙幸福感最大的因素應(yīng)該是那個(gè)偉大的墻了。 本文對(duì) docker 系統(tǒng)配置過(guò)程中,國(guó)內(nèi)使用的一些加速的辦法做一些記錄和總結(jié),希望能給有需要的人帶來(lái)微小的幫助。 Docker for mac 下載 Docker fo...
摘要:眾所周知,框架越重,性能相對(duì)就越低,因?yàn)橹匦涂蚣軙?huì)在解析時(shí)調(diào)用非常多的類方法和自定義函數(shù),導(dǎo)致性能嚴(yán)重下降。好在相對(duì)于而言,性能提升了將近一倍,而的也是個(gè)不錯(cuò)的替代方案。首先安裝和擴(kuò)展。我已向作者反饋,他修正了這個(gè)問(wèn)題。 眾所周知,PHP框架越重,性能相對(duì)就越低,因?yàn)橹匦涂蚣軙?huì)在解析時(shí)調(diào)用非常多的類、方法和自定義函數(shù),導(dǎo)致性能嚴(yán)重下降。Laravel是一個(gè)非常受歡迎的PHP框架,但它也...
閱讀 569·2019-08-30 15:55
閱讀 973·2019-08-29 15:35
閱讀 1231·2019-08-29 13:48
閱讀 1944·2019-08-26 13:29
閱讀 2976·2019-08-23 18:26
閱讀 1286·2019-08-23 18:20
閱讀 2862·2019-08-23 16:43
閱讀 2730·2019-08-23 15:58