资讯专栏INFORMATION COLUMN

PHP 包与扩展的管理工具 Pear、Composer 与 Pecl

Batkid / 3496人阅读

摘要:的包管理器是,用来浏览并搜索查看最新发行版下载。的包管理器是下一代的,使用编写,以格式发布。二发布时间轴三安装与使用安装主要是安装和这两个包管理器,然后通过包管理器安装其他。

PHP社区提供了几个管理扩展和包的工具包括Pecl、Pear、Pear2和Composer。在不了解的情况下去使用这些工具必然会出现困惑,所以下面就简单介绍下这几个管理工具。
一、简介

下面简要介绍 Pear、Pear package、Pear installer、Pear2、Pyrus、Composer、Pecl。

Pear

Pear 是 PHP 扩展与应用库(the PHP Extension and Application Repository)的缩写,是一个 PHP 扩展及应用的一个代码仓库。Pear 仓库代码是以包(package)分区,每一个 Pear package 都是一个独立的项目有着自己独立的开发团队、版本控制、文档和其他包的依赖关系信息。Pear package 以 phar、tar 或 zip 发布。

Pear 的包管理器是Pear installer,用来浏览并搜索 Pear package、查看最新发行版、下载 Pear package。

Pear2

Pear2 是下一代的 Pear 代码仓库,在使用性、速度、安全上都有改进。Pear2 的包管理器 Pyrus 是下一代的 Pear installer,使用 PHP 编写,以 phar 格式发布。

Composer

Composer 是 PHP 中的应用程序级的包依赖管理器。用来管理(安装/更新)你项目中申明的依赖库。Composer 的包信息存储库是 Packagist。

Pecl

Pecl 是 PHP 扩展社区仓库(The PHP Extension Community Library)的缩写,Pecl 扩展库的包(package)是使用 C、C++ 编写的动态链接库扩展,在编译安装后通过 php.ini 加载,随 PHP 进程被装入内存。

二、发布时间轴

三、Mac 安装与使用 Pear

Pear 安装主要是安装 Pear installer 和 Pyrus 这两个包管理器,然后通过包管理器安装其他 Pear package。

(1)Pear installer

如果你安装的是PHP (> 4.3.0),并且编译时并未使用“./configure flag --without-pear”选项,那么 Pear installer 的安装已集成在系统里。但如果你安装的 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 引入文件

(2)Pyrus

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 自动引入

Pecl

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

Composer 需要 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)以动态链接 .dll、.so 形式加载,而包则是直接引入通过 require/include 方式加載

所以,Pecl 和 Pear 是互为补充,管理者扩展与包。

Pear installer 与 Composer

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 作为系统级软件包,通常需要 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 學習筆記

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30710.html

相关文章

  • PHP回顾之Composer

    摘要:本文简要回顾相关概念和用法。相比之下已是明日黄花。分别对应的命令是根据关键字查找依赖包,例如查找本人发布的包。作为目前包依赖管理的最佳工具,值得每一位开发人员掌握。 转载请注明文章出处:https://tlanyan.me/php-review... PHP回顾系列目录 PHP基础 web请求 cookie web响应 session 数据库操作 加解密 Composer是PHP...

    Ocean 评论0 收藏0
  • Docker 实践(七):提升幸福感

    摘要:对程序员来说,阻碍幸福感最大的因素应该是那个伟大的墙了。所幸国内有或者阿里云这样的云服务商提供镜像加速服务,可直接搜索镜像加速,添加这些服务商提供的地址即可。 对程序员来说,阻碍幸福感最大的因素应该是那个伟大的墙了。 本文对 docker 系统配置过程中,国内使用的一些加速的办法做一些记录和总结,希望能给有需要的人带来微小的帮助。 Docker for mac 下载 Docker fo...

    qingshanli1988 评论0 收藏0
  • PHP7下安装Stone大幅度提升Laravel框架性能

    摘要:众所周知,框架越重,性能相对就越低,因为重型框架会在解析时调用非常多的类方法和自定义函数,导致性能严重下降。好在相对于而言,性能提升了将近一倍,而的也是个不错的替代方案。首先安装和扩展。我已向作者反馈,他修正了这个问题。 众所周知,PHP框架越重,性能相对就越低,因为重型框架会在解析时调用非常多的类、方法和自定义函数,导致性能严重下降。Laravel是一个非常受欢迎的PHP框架,但它也...

    oysun 评论0 收藏0
  • 不止LNMP后端开发环境搭建

    摘要:前言本次目标是在新安装在虚拟机中的系统中安装一系列后端开发通常用到的程序服务这里不介绍的安装并以为例子部署一个网站开机启动重要提示如果觉得一个个安装和配置太麻烦那推荐使用宝塔可视化管理工具进行操作基本实现一键操作极大提高效率简言之一个字爽当 前言 本次目标是在新安装在虚拟机中的CentOS7.5系统中安装一系列后端开发通常用到的程序服务(这里不介绍CentOS的安装),并以phpMyA...

    StonePanda 评论0 收藏0
  • 不止LNMP后端开发环境搭建

    摘要:前言本次目标是在新安装在虚拟机中的系统中安装一系列后端开发通常用到的程序服务这里不介绍的安装并以为例子部署一个网站开机启动重要提示如果觉得一个个安装和配置太麻烦那推荐使用宝塔可视化管理工具进行操作基本实现一键操作极大提高效率简言之一个字爽当 前言 本次目标是在新安装在虚拟机中的CentOS7.5系统中安装一系列后端开发通常用到的程序服务(这里不介绍CentOS的安装),并以phpMyA...

    ddongjian0000 评论0 收藏0

发表评论

0条评论

Batkid

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<