PHP社区提供了几个管理扩展和包的工具包括 Pecl、 Pear、 Pear2和 Composer。在不了解的状况下去使用这些工具必然会出现困惑,因此下面就简单介绍下这几个管理工具。
下面简要介绍 Pear、Pear package、Pear installer、Pear二、Pyrus、Composer、Pecl。php
Pear 是 PHP 扩展与应用库(the PHP Extension and Application Repository)的缩写,是一个 PHP 扩展及应用的一个代码仓库。Pear 仓库代码是以包(package)分区,每个 Pear package
都是一个独立的项目有着本身独立的开发团队、版本控制、文档和其余包的依赖关系信息。Pear package 以 phar、tar 或 zip 发布。html
Pear 的包管理器是Pear installer
,用来浏览并搜索 Pear package、查看最新发行版、下载 Pear package。linux
Pear2 是下一代的 Pear 代码仓库,在使用性、速度、安全上都有改进。Pear2 的包管理器 Pyrus 是下一代的 Pear installer,使用 PHP 编写,以 phar 格式发布。编程
Composer 是 PHP 中的应用程序级的包依赖管理器。用来管理(安装/更新)你项目中申明的依赖库。Composer 的包信息存储库是 Packagist。json
Pecl 是 PHP 扩展社区仓库(The PHP Extension Community Library)的缩写,Pecl 扩展库的包(package)是使用 C、C++ 编写的动态连接库扩展,在编译安装后经过 php.ini 加载,随 PHP 进程被装入内存。安全
Pear 安装主要是安装 Pear installer 和 Pyrus 这两个包管理器,而后经过包管理器安装其余 Pear package。composer
若是你安装的是PHP (> 4.3.0),而且编译时并未使用“./configure flag --without-pear”选项,那么 Pear installer 的安装已集成在系统里。但若是你安装的 PHP(< 4.3.0),那么你就须要手动安装 Pear installer。curl
$ curl -O https://pear.php.net/go-pear....svn
$ sudo php -d detect_unicode=0 go-pear.phar工具
1) 更改 Installation Base 位置
输入1,而后按下 Enter
输入 /usr/local/pear,而后按下 Enter
2) 更改 Binaries directory 位置
输入4,而后按下 Enter
输入 /usr/local/bin,而后按下 Enter
3)再按下 Enter 一次,让其默认
4)安装完成
$ pear -V
$ sudo pear install mypear
由于 Pear 库中的包都是由 PHP 编写的的,因此使用只须要在代码层手动 require/include 引入文件
php pyrus.phar
$ php pyrus.phar
$ 输入 yes,而后按下Enter
$ 输入你安装包存放的位置 /Users/my-project,而后按下Enter
$ 安装完成
$ php pyrus.phar --version
$ php pyrus.phar install mypear
(1)由于 Pear 库中的包都是由 PHP 编写的,因此使用只须要在代码层手动 require/include 引入文件,但require_once 不被容许
(2)Pyrus 可使用自带的 autoloader 自动引入
Pecl 能够经过 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 的源代码,编译之,并将建立 extname.so 放置于 PHP 的扩展库目录中。
(2)经过 phpize 编译共享 Pecl 扩展库 extname
1. 下载 extname 源代码 2. 进入 extname 目录 $ cd extname 3. 准备 PHP 扩展库的编译环境 $ phpize 4. 编译 $ ./configure $ make $ make install 成功的安装并将建立 extname.so 并放置于 PHP 的扩展库目录中。
加载
(1)经过 php.ini 加载 extname.so
1):Windows上是加载扩展的动态连接库后缀是“.dll”,在 Unix 或 Linux 上是“.so” 2):修改 php.ini,扩展已经在 php.ini 里。若是有 extension=extname.so 那么去掉前面“;”,或者直接添加 extension=extname.so
下载 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 引入这个文件。
因此,Pecl 和 Pear 是互为补充,管理者扩展与包。
Composer 虽然比 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 已经彻底被 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": "*" } }
若是是包使用 Composer 安装使用,若是是涉及底层扩展则使用 Pecl(也可使用其余编译安装方式) 安装。