Composer是一个依赖管理工具,它是PHP开源社区中受nodeJS的npm和ruby的bundler的启发所开发出来的一个工具,用以解决库依赖的问题。现在越来越多的开源产品中都逐渐加入了对composer的支持。为了能够使用这么一个方便的工具,还是有必要来学一下它的,下面就是个人对这个工具入门学习的记录
系统要求
并不是所有的PHP版本都可以支持composer的,composer官方文档要求需要PHP 5.3.2+ 版本
MAC OS下安装
由于个人使用MAC OS,所以就只关注了在Mac OS下的安装方法。要使用composer其实只需要一个文件即可,也就是composer.phar文件。我们首先要把它下载下来,打开“终端”,执行:
curl -sS https://getcomposer.org/installer | php
如果你用这个命令下载失败了,那可用再试试用:
php -r "readfile('https://getcomposer.org/installer');" | php
我使用curl下载后,提示:
Composer (version 1.3.2) successfully installed to: /Users/Ame/composer.phar
Use it: php composer.phar
所以,我知道它放在了/Users/Ame/这个目录下。其实,现在这个时候,我们就可用使用composer了,但是要用 php composer.phar 这么长的一串,想想就觉得特别麻烦,那么有没有什么好一点的办法,可用简化这个命令呢,那么我们可以cd下切换到composer.phar所在目录,然后把这个文件移动到 usr/local/bin 里去,如:
mv composer.phar usr/local/bin/composer
如此一来,我们就可用使用“composer”这一命令来使用composer了
使用说明
composer是通过读取目录下的composer.json文件来完成依赖处理的,支持composer的项目,都会有一个composer.json文件,而我们此时,只需要在相应文件目录下,执行:
composer intall
就可以了!
composer.json文件的说明
1、可用在composer.json中指明所需要的依赖信息,如:
{
"require": {
"monolog/monolog": "1.0.*"
}
}
composer就知道,我们需要monolog厂商的monolog,而且版本是1.0.x的
2、这里,“monolog/monolog”是一个包名称,因为不同厂商可以有同样的包名,因此为了避免冲突,就需要使用 <厂商名>/<包名> 这样子的名称
3、包版本,这里“1.0.*”中的*是一个通配符,意味着可用匹配任何版本号为1.0.开头的版本,关于包版本,还有更多的使用信息如:
- 3-1. 确切的版本号,如:1.0.2
- 3-2. 范围,如>=1.0或者>=1.0, <2.0或者>=1.0, <2.0|>=2.1,其中“,”表示AND关系,“|”表示OR关系
- 3-3. 最低版本~1.2,表示.2部分是可变的,但1部分是不能变的,故它相当于>=1.2,<2.0
composer.lock文件
1、在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定该项目的特定版本。这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响
2、如果不存在 composer.lock 文件,Composer 将读取 composer.json 并创建锁文件。
这意味着如果你的依赖更新了新的版本,你将不会获得任何更新。此时要更新你的依赖版本要使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。
php composer.phar update
如果只想安装或更新一个依赖,可以白名单它们:
php composer.phar update monolog/monolog [...]
自动加载
composer会自动建立一个“vendor/autoload.php”文件,只需要引入这个文件,便可以自动加载使用依赖,使用示例如下:
<?php
require 'vendor/autoload.php';
$log = new Monolog\Logger('name');
$log->pushHandler(new Monolog\Handler\StreamHandler('app.log', Monolog\Logger::WARNING));
$log->addWarning('Foo');
?>
以上就是composer最最基本的使用指南,关于更多的composer使用说明,可浏览composer官方文档