道者编程

初识composer

Composer 是 PHP 的一个依赖管理工具,一般用来下载和管理第三方类库。在这之前PHP还有两种管理方式,即:PECL和PEAR。


PECL:管理PHP扩展,用C语言开发,需要编译到PHP中。


PEAR:管理PHP的第三方类库,纯PHP开发。


从速度性能的角度来说,个人建议能够用PECL的尽量用PECL,编译其实并不麻烦,毕竟C开发的无缝对接,效率在那里。PEAR起源于PHP4,当时也风光过。起初的PHP开发比较混乱(其实现在也是),PEAR制定了一套标准,不过PEAR的坑也不少,特别是关联性差,比如第三方库又依赖其他库就非常麻烦,配置也较繁琐。PHP7已经放弃了PEAR。其实以前国内用PEAR的并不多,因为PHP大多小团队甚至单兵作战,很多PHP开发者在多年的开发中,都形成了自己的规范,有自己的一套东西。


综合:PEAR和composer都是PHP的上层扩展(类库);PECL是PHP的底层扩展。下面谈谈composer。


Composer需要PHP 5.3.2+才能运行,如果版本低先升级。

安装过程略过,安装前如果是win系统,先打开php.ini的openssl扩展,linux如果没有编译openssl,可以用phpize编译openssl模块进PHP中,当然你也可以重新编译PHP。


用法:

小试身手(1):以Laravel为例子,官网推荐全局安装

composer global require "laravel/installer"
 不过由于众所周知的原因,此方法不稳定——墙!我们采用下一种方法


首先把源换成国内,执行:

composer config -g repo.packagist composer https://packagist.phpcomposer.com
#有时候不稳定就换下一个。
composer config -g repo.packagist composer https://packagist.laravel-china.org

或者改单个项目源:项目根目录的composer.json文件,添加:url

"repositories": {
        "packagist": {
            "type": "composer",
            "url": "https://packagist.laravel-china.org"
        }
    }
命令查看配置:composer config --list

如果我们要在E:\www目录新建了一个名为:test的 larvel项目,cmd切换到E:\www,然后:

composer create-project --prefer-dist laravel/laravel=5.5 test #


这样就在E:\www目录新建了一个名为:test的 larvel项目。是不是很快,国内源的原理就是中转,发送请求先到国内源,然后此源再请求墙外的数据缓存,是不是快多了。


小试身手(2):

这里我在E盘新建一个目录 moo,即:E:\www\moo;在moo目录下新建文件:composer.json

文件中输入一段json代码:

{
  "require": {
  }
}
 

cmd切换到moo下,然后执行:

composer update

 


这样就会在此目录下生成一个vendor目录,表示初始化成功



小试身手(3):

下面我们给composer.json文件加点内容,比如我们要把php日志工具monolog加到项目中来,只需简单两步:

修改json:

{
  "require": {
  	 "monolog/monolog": "^1.21"
  }
}
^1.21:表示>=1.21,小于1.3版本

然后切换目录执行:

composer update
 

执行完毕可以看到在E:\www\moo\vendor下多出了一个monolog,这就是刚才我们下载下来的包。


多版本PHP切换:有时候因为版本原因,需要指定PHP版本,比如安装一个东西,机器上上php7.0,但是需要php7.1才能安装,可以使用:composer.phar,电脑上找找有没有这个,没有的话,网上下载:https://getcomposer.org/download/

比如项目在F:\www\blog,那么把composer.phar复制到这里,然后指定php运行:

D:\phpStudy\PHPTutorial\php\php-7.1.13-nts\php composer.phar install


(此图转自 IBM developerworks)


最新评论:
1楼 广东省广州市 电信 发表于 2017-02-06 07:51:52
test
2楼 广东省广州市 电信 发表于 2017-02-06 07:52:17
helloworld
3楼 中国 移动 发表于 2017-02-07 08:23:30
阿斯大时代
共有 3 条记录  首页 上一页 下一页 尾页 1
我要评论:

看不清楚