composer使用记录

背景介绍

日常我们开发过程中,甭管出于怎样的目的,总会用到别人造好的轮子(package,library,甚至整个项目),那么不可避免的就遇到了相互依赖或依赖过多的问题。比如A原来B和C,B和C又依赖D和F,在composer出现之前,我们要想用A,会怎么做呢,至少在PHP中,我们会先安装D和F,再安装B和C,最后才安装A,如果碰到更深层次的依赖,就更蛋疼死了。

composer出现之后

其实composer的目的之一就是为了解决上述问题,更深程度上促进了PHP语言的发展,给PHP带来了一个小春天。为什么这么说呢,composer的出现让大家引入别人的轮子更加的方便,开发者之间分享更方便快捷,只要遵循了一定的规范和格式,人人都可以发布轮子供大家使用。
Composer 是 PHP5以上 的一个依赖管理工具。它允许你申明项目所依赖的代码库,并直接使用它们,就像java的Maven,nodeJs的npm一样,你可以很方便的解决项目之间的依赖问题,告别复制粘贴的黑洞。
比如你想在项目中用到一个日志library:monolog,那么你可以直接告诉配置文件说我要用monolog的某个版本或最新版本,不管它有多少依赖,我就是要用,那么你写完配置文件,直接安装,composer会替你解决一切依赖。

composer的安装

我只介绍一种最简单的安装方式,直接下载可执行文件 composer.phar ,这是一个 PHAR 包(PHP 的归档),这是 PHP 的归档格式可以帮助用户在命令行中执行一些操作。一般情况下使用可以直接php composer.phpar XXX ,但是明显你可以在全局使用它,只需要把他移动到全局环境变量即可‘mv composer.phar /usr/local/bin/composer’ 然后就可以直接使用composer命令了。

创建自己的composer library

新建一个目录,进去执行composer init命令,按照提示,一步步输入作者,邮箱,依赖包等信息,你会得到一个composer.json这样的文件。这 个就是composer的配置文件,json格式,里面的配置信息基本一看就明白了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
{
"name": "lbool/composerinit",
"description": "this is a first packagist",
"type": "project",
"require": {
"monolog/monolog": "^1.21"
},
"authors": [
{
"name": "lbool",
"email": "lbool@foxmail.com"
}
],
"minimum-stability": "beta"
}

然后你执行composer install命令,安装完毕后你会发现多了一个目录 vendor,里面出现了你依赖的所有包和一个autoload.php文件,没错儿,它不但替你安装了所依赖的包,还为我们生成了自动加载文件,如果我们需要使用依赖的类,没错儿,直接引入这个autoload文件即可。

常用的composer命令

composer init 初始化composer
composer install 根据composer.json安装依赖
composer update 根据composer.json更新依赖
composer require XXX 申明依赖
composer self-update 自我更新
composer config 配置composer
其他命令可以去官网手册查看

在此打赏