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