PHP的三种工具pecl/pear/composer的区别

PHP的三种工具pecl/pear/composer的区别

PEAR

PEAR 是“PHP Extension and Application Repository”的缩写,即PHP扩展和应用仓库。
PEAR将PHP程序开发过程中常用的功能编写成类库,涵盖了页面呈现、数据库访问、文件操作、数据结构、缓存操作、网络协议、WebService 等许多方面,用户可以通过下载这些类库并适当的作一些定制以实现自己需要的功能。避免重复发明“车轮”。PEAR 的出现大大提高了PHP 程序的开发效率和开发质量。

PECL

PECL 是“PHP Extension Community Library”的缩写,即PHP 扩展库。
PECL 可以看作PEAR 的一个组成部分,提供了与PEAR 类似的功能。不同的是PEAR的所有扩展都是用纯粹的PHP代码编写的,用户在下载到PEAR 扩展以后可以直接使用将扩展的代码包含到自己的PHP 文件中使用。而PECL是使用C 语言开发的,通常用于补充一些用PHP难以完成的底层功能,往往需要重新编译或者在配置文件中设置后才能在用户自己的代码中使用。
最直接的表述:PEAR是PHP的上层扩展,PECL是PHP的底层扩展。它们都是为特定的应用提供现成的函数或者类。

特别注意:由于PEAR与PECL项目的特殊关系(PECL是PEAR的一个组成部分,可以认为是其子项目),所以并不存在一个叫pecl的安装包让你安装之后使用pecl命令,你只需要安装pear即可,安装pear后,同时会有两个命令,一个是pear,一个是pecl。
PEAR官网对PECL的介绍:
Xnip2018-11-08_06-02-59.png
PECL官网对PECL的介绍:
Xnip2018-11-08_06-02-13.png

Composer

composer 是php的包管理工具,优点在于仅需要提供一个composer.json文件,申明需要用到的三方库,一个简单的命令就能将其依赖全部装好。也方便项目的部署和发布,因为只需要提供一个composer.json就行了,还提供了自动加载的支持。这就涉及到php-fig组织的PSR-0规范了

总结:composer和pear功能是一样的,但是composer更方便好用,pear差不多被淘汰了。

composer设置国内镜像源

全局设置packagist中国全量镜像(推荐):

composer config -g repo.packagist composer https://packagist.phpcomposer.com

该设置,其实是往composer的全局配置文件~/.composer/config.json中添加以下配置(所以你手动去该文件中添加也是一样的):

{
    "config": {},
    "repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.phpcomposer.com"
        }
    }
}

只给当前项目设置国内源:

composer config repo.packagist composer https://packagist.phpcomposer.com

其实就是在当前项目下的composer.json末尾添加以下json(所以你手动添加也是一样的):

"repositories": {
    "packagist": {
        "type": "composer",
        "url": "https://packagist.phpcomposer.com"
    }
}

composer的基本用法:

composer list 显示所有命令

composer show 显示所有包信息

composer install 在 composer.json 配置中添加依赖库之后运行此命令安装

composer create-project laravel/laravel Laravel –prefer-dist “5.1.*” 创建项目

composer search packagename 搜索包

composer update 更新所有包

composer update monolog/monolog 更新指定包

composer remove monolog/monolog 移除指定的包

composer require monolog/monolog 添加指定包

composer require monolog/monolog:1.19 添加指定包和版本

composer require monolog/monolog=1.19

composer require monolog/monolog 1.19

Leave a Reply

avatar

This site uses Akismet to reduce spam. Learn how your comment data is processed.

  Subscribe  
Notify of

扫码在手机查看
iPhone请用自带相机扫
安卓用UC/QQ浏览器扫

PHP的三种工具pecl/pear/composer的区别