composer 基础认知
Packagist
各种包的管理的地方
composer install
文件composer.json
里面记录了所需要的依赖
{
"require": {
"monolog/monolog": "1.0.*"
}
}
安装依赖包
首次安装会生成compolser.lock 不同于composer.json 里面记录了详细的包版本,如果再次安装 会先检查composer.lock 有没有 如果存在就下载指定版本
composer install
更新依赖包
无论有没有composer.lock, 都会重新以composer.json 下载对应依赖
composer update
自动加载
Composer 生成了一个 vendor/autoload.php 文件 引入这个文件 就可以完成自动加载
require 'vendor/autoload.php';
PSR-4 和PSR-0
PSR-4中 use liangzai\testClass, 对应src/testClass.php
PSR-0中 use liangzai\testClass, 对应src/liangzai/testClass.php.
{
"autoload": {
"psr-4": {
"liangzai\\": "./src/"
},
"psr-0": {
"liangzai\\": "./src/"
}
}
}
常规
自己的理解
key app对应的是空间名称 value app对应的事目录指向
{
"autoload": {
"psr-4": {
"app\\": "app"
},
"psr-0": {
"": "extend/"
}
}
}
composer update
获取依赖最新版本 并更新composer.lock
可指定只更新部分包 composer update test/test 多个空格隔开
composer require
申明依赖
composer require vendor/package:2.* vendor/package2:dev-master
composer search
搜索 packagist.org 上面的包
composer show
展示你所用的所有包
composer show test/test 可以看包的详细信息
依赖性检测 depends
可以查出已安装在你项目中的某个包,是否正在被其它的包所依赖,并列出他们。
composer depends --link-type=require monolog/monolog
有效性检测 validate
检测你的composer 是否正确
自我更新 self-update
升级composer 包
更改配置 config
查看配置
php composer.phar config --list
修改包来源
php composer.phar config repositories.foo vcs http://github.com/foo/bar
创建项目 create-project
这相当于执行了一个 git clone 或 svn checkout 命令后将这个包的依赖安装到它自己的 vendor 目录
php composer.phar create-project doctrine/orm path 2.2.*
打印自动加载索引 dump-autoload
设置了 autoload 就执行 composer dump-autoload
诊断 diagnose
composer diagnose
归档 archive
此命令用来对指定包的指定版本进行 zip/tar 归档。它也可以用来归档你的整个项目,不包括 excluded/ignored(排除/忽略)的文件。
composer archive vendor/package 2.0.21 --format=zip