前言
接触laravel之后,才知道有PSR,composer之类的东西,PHP已经不再是一门草根语言了。最近在尝试玩thrift,需要安装PHP thrift依赖库,使用composer install apache/thrift会提示composer.json文件不存在,这个文件确实不存在,难道就不能安装了吗?后来发现可以通过composer require apache/thrift安装,这个命令会尝试创建composer.json配置文件。通过这件事情,发现对composer还是不是很了解,于是花了点时间详细了解,于是使用自己的语言编织了这篇文章。
实现原理
获取包元信息,项目源码地址库下载包以及依赖的包,安装到本地
安装
composer需要PHP5.3.2+版本以及需要开启phar扩展
composer是由PHP编写以及使用PHP phar打包压缩的一个linux shell环境下可执行的文件(phar格式文件可以通过PHP命令行执行)
[wadeyu@localhost ~]$ curl -sS https://getcomposer.org/installer | php
[root@localhost wadeyu]# mv composer.phar /usr/local/bin/composer
配置
设置镜像地址(中国的镜像地址 -g参数表示全局配置)
composer config -g repo.packagist composer https://packagist.phpcomposer.com
设置进程执行超时时间(单位秒)
composer config -g process-timeout 600
查看配置列表
composer config -g -l
配置文件说明
项目根目录下命名为composer.json的文件,使用JSON格式定义项目或者包相关的信息
使用
composer命令自动更新(有时候更新不了:()
composer self-update
声明依赖包(当前执行目录不存在composer.json会尝试创建)
composer require 包名
安装包(composer.json声明需要安装的依赖包)
composer install
更新包
composer update [包名1 包名2 ...]
搜索包(没有composer.json配置文件会执行远程搜索速度会比较慢:()
composer search 模式符
显示命令列表
composer list
更新autoload自动加载配置
composer.json添加autoload配置
composer dump-autoload
后记
我大概深入的了解了下,现在基本上能够满足我日常使用,后面碰到问题可以查看下面的参考资料。多个项目间需要共享代码而又不能发布到公共仓库时,可以搭建本地包元数据服务以及包源码下载的代码管理服务,这个应该是可行的,我没有尝试过:(
参考资料
【1】composer中文网
http://www.phpcomposer.com/
【2】composer工具手动下载地址
https://getcomposer.org/download/
【3】Packagist/Composer中国全量镜像
http://pkg.phpcomposer.com/
【4】composer.json配置详细说明
http://docs.phpcomposer.com/04-schema.html
【5】composer基本用法
http://docs.phpcomposer.com/01-basic-usage.html