PHP扩展和包的管理:PEAR、PECL、Composer

扩展(Extension)一般偏底层,包(Application,Package)一般偏应用。不建议做过分的区分,在使用中能够理解和区分即可。
对于他们的管理目前有PEAR、PECL、Composer。

PEAR

PEAR是PHP扩展与应用库(the PHP Extension and Application Repository)的缩写。http://pear.php.net/
Bakken在1999年创立了PEAR项目,目标是试图定义一种标准,帮助开发者编写可移植、可重用的代码,避免重复发明“车轮”。代码均是PHP编写的。
涵盖了页面呈现、数据库访问、文件操作、数据结构、缓存操作、网络协议、WebService 等许多方面,用户可以通过下载这些类库,并适当的作一些定制以实现自己需要的功能。
但是随着Git、github等发展,其逐渐被Composer包管理替代。

PECL

“PHP Extension Community Library”的缩写,即PHP 扩展库。https://pecl.php.net/
PECL是使用C语言开发的,通常用于补充一些用PHP难以完成的底层功能,往往需要重新编译或者在配置文件中设置后才能在用户自己的代码中使用。
2种使用方式:

  • 命令模式,和pear的命令一致,通过man pecl显示此命令的用法
  • 编译模式,即phpize

Composer

PHP包管理工具,在“帮助开发者编写可移植、可重用的代码,避免重复发明“车轮””上和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 中尚未发布的扩展库。
如果要编译这种扩展库,可以用更底层的编译工具来手工进行编译。phpize 命令是用来准备 PHP 扩展库的编译环境的。

$ 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

成功的安装将创建 yaml.so 并放置于 PHP 的扩展库目录 extension_dir 中。需要调整 php.ini 加入 extension=yaml.so 这一行之后才能使用此扩展库。
使用 phpize --help 命令可以显示此命令用法。

composer

可以参看文档 http://www.jianshu.com/p/f0b9a319711f

composer require mustangostang/spyc
目前主流的方式,对于偏底层的扩展通过编译方式安装,对于偏应用的通过composer方式。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Welcome 目前网络上充斥着大量的陈旧信息,让PHP新手误入歧途,传播着错误的实践和糟糕的代码,这必须得到纠正...
    layjoy阅读 21,792评论 7 118
  • 更改ip和dnsVi /etc/sysconfig/network-scripts/ifcfg-eth0vi /...
    Xwei_阅读 5,865评论 0 3
  • ziadoz在 Github发起维护的一个PHP资源列表,内容包括:库、框架、模板、安全、代码分析、日志、第三方库...
    Gundy_阅读 11,489评论 4 192
  • 依赖管理 依赖和包管理库 Composer/Packagist:一个包和依赖管理器Composer Install...
    guanguans阅读 4,373评论 0 8
  • 兄弟你瘦了,看这疲备啊,一路风尘盖不住,岁月的脸颊,兄弟你变了,变得沉默了,说说吧那些放在心里的话兄弟我们的青春就...
    1f362a9d3251阅读 1,351评论 0 0

友情链接更多精彩内容