composer的使用
初始化
要使用 Composer,我们需要先在项目的根目录下创建一个 composer.json 文件,文件描述了项目的依赖关系。
{
"require": {
"monolog/monolog": "1.0.*"//一个日志工具
......... 你的其他包
}
}
安装依赖 install
install 命令从当前目录读取 composer.json 文件,处理了依赖关系,并把其安装到 vendor 目录下。
composer install
等待安装完成之后会自动生成一下目录
申明依赖 require
require 命令增加新的依赖包到当前目录的 composer.json 文件中,并把其安装到 vendor 目录下。
composer require "monolog/monolog=1.0.*"
更新某个包 update
composer update monolog/monolog
//也可以指定版本
composer update "monolog/monolog=1.1.1"
版本号指定说明
通配符
1.0.*相当于>=1.0 <1.1。
波浪号~
~1.2相当于>=1.2 <2.0.0
折音号^
^1.2.3相当于>=1.2.3 <2.0.0
指定确切版本
1.0.1
卸载包
composer remove packageName
搜索包
composer search monolog
composer.lock - 锁文件
在安装依赖后,Composer 将把安装时确切的版本号列表写入 composer.lock 文件。这将锁定改项目的特定版本。
这是非常重要的,因为 install 命令将会检查锁文件是否存在,如果存在,它将下载指定的版本(忽略 composer.json 文件中的定义)。
这意味着,任何人建立项目都将下载与指定版本完全相同的依赖。你的持续集成服务器、生产环境、你团队中的其他开发人员、每件事、每个人都使用相同的依赖,从而减轻潜在的错误对部署的影响。即使你独自开发项目,在六个月内重新安装项目时,你也可以放心的继续工作,即使从那时起你的依赖已经发布了许多新的版本。
如果不存在 composer.lock 文件,Composer 将读取 composer.json 并创建锁文件。
这意味着如果你的依赖更新了新的版本,你将不会获得任何更新。此时要更新你的依赖版本请使用 update 命令。这将获取最新匹配的版本(根据你的 composer.json 文件)并将新版本更新进锁文件。
composer 自动加载机制
//直接引入vendor/autoload.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 dump-autoload