composer与PHP composer.phar
下列参数可与每一个命令结合使用:
--verbose (-v): 增加反馈信息的详细度。
-v 表示正常输出。
-vv 表示更详细的输出。
-vvv 则是为了 debug。
--help (-h): 显示帮助信息。
--quiet (-q): 禁止输出任何信息。
--no-interaction (-n): 不要询问任何交互问题。
--working-dir (-d): 如果指定的话,使用给定的目录作为工作目录。
--profile: 显示时间和内存使用信息。
--ansi: 强制 ANSI 输出。
--no-ansi: 关闭 ANSI 输出。
--version (-V): 显示当前应用程序的版本信息。
初始化
php composer.phar init
初始化-参数
--name: 包的名称。
--description: 包的描述。
--author: 包的作者。
--homepage: 包的主页。
--require: 需要依赖的其它包,必须要有一个版本约束。并且应该遵循 foo/bar:1.0.0 这样的格式。
--require-dev: 开发版的依赖包,内容格式与 --require 相同。
--stability (-s): minimum-stability 字段的值。
安装install
php composer.phar install
安装-参数
--prefer-source: 下载包的方式有两种: source 和 dist。对于稳定版本 composer 将默认使用 dist 方式。而 source 表示版本控制源 。如果 --prefer-source 是被启用的,composer 将从 source 安装(如果有的话)。如果想要使用一个 bugfix 到你的项目,这是非常有用的。并且可以直接从本地的版本库直接获取依赖关系。
--prefer-dist: 与 --prefer-source 相反,composer 将尽可能的从 dist 获取,这将大幅度的加快在 build servers 上的安装。这也是一个回避 git 问题的途径,如果你不清楚如何正确的设置。
--dry-run: 如果你只是想演示而并非实际安装一个包,你可以运行 --dry-run 命令,它将模拟安装并显示将会发生什么。
--dev: 安装 require-dev 字段中列出的包(这是一个默认值)。
--no-dev: 跳过 require-dev 字段中列出的包。
--no-scripts: 跳过 composer.json 文件中定义的脚本。
--no-plugins: 关闭 plugins。
--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
--optimize-autoloader (-o): 转换 PSR-0/4 autoloading 到 classmap 可以获得更快的加载支持。特别是在生产环境下建议这么做,但由于运行需要一些时间,因此并没有作为默认值。
忽略版本
composer install --ignore-platform-reqs
composer update --ignore-platform-reqs
更新update
php composer.phar update
更新-参数
--prefer-source: 当有可用的包时,从 source 安装。
--prefer-dist: 当有可用的包时,从 dist 安装。
--dry-run: 模拟命令,并没有做实际的操作。
--dev: 安装 require-dev 字段中列出的包(这是一个默认值)。
--no-dev: 跳过 require-dev 字段中列出的包。
--no-scripts: 跳过 composer.json 文件中定义的脚本。
--no-plugins: 关闭 plugins。
--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
--optimize-autoloader (-o): 转换 PSR-0/4 autoloading 到 classmap 可以获得更快的加载支持。特别是在生产环境下建议这么做,但由于运行需要一些时间,因此并没有作为默认值。
--lock: 仅更新 lock 文件的 hash,取消有关 lock 文件过时的警告。
--with-dependencies 同时更新白名单内包的依赖关系,这将进行递归更新。
申明依赖require
require
命令增加新的依赖包到当前目录的 composer.json
文件中。
php composer.phar require
申明依赖-参数
--prefer-source: 当有可用的包时,从 source 安装。
--prefer-dist: 当有可用的包时,从 dist 安装。
--dev: 安装 require-dev 字段中列出的包。
--no-update: 禁用依赖关系的自动更新。
--no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
--update-with-dependencies 一并更新新装包的依赖。
全局执行global
php composer.phar global update
搜索search
search
命令允许你为当前项目搜索依赖包,通常它只搜索 packagist.org 上的包,你可以简单的输入你的搜索条件。
php composer.phar search monolog
搜索-参数
--only-name (-N): 仅针对指定的名称搜索(完全匹配)。
展示show
列出所有可用的软件包,你可以使用 show
命令。
php composer.phar show
展示-参数
--installed (-i): 列出已安装的依赖包。
--platform (-p): 仅列出平台软件包(PHP 与它的扩展)。
--self (-s): 仅列出当前项目信息。
依赖性检测depends
depends
命令可以查出已安装在你项目中的某个包,是否正在被其它的包所依赖,并列出他们。
php composer.phar depends --link-type=require monolog/monolog
依赖性检测-参数
--link-type: 检测的类型,默认为 require 也可以是 require-dev。
有效性检测validate
在提交 composer.json
文件,和创建 tag 前,你应该始终运行 validate
命令。它将检测你的 composer.json
文件是否是有效的
php composer.phar validate
有效性检测参数
--no-check-all: Composer 是否进行完整的校验。
依赖包状态检测status
如果你经常修改依赖包里的代码,并且它们是从 source(自定义源)进行安装的,那么 status
命令允许你进行检查,如果你有任何本地的更改它将会给予提示。
php composer.phar status
自我更新self-update
将 Composer 自身升级到最新版本,只需要运行 self-update
命令。它将替换你的 composer.phar
文件到最新版本。
php composer.phar self-update
如果你想要升级到一个特定的版本,可以这样简单的指定它:
php composer.phar self-update 1.0.0-alpha7
自我更新-参数
--rollback (-r): 回滚到你已经安装的最后一个版本。
--clean-backups: 在更新过程中删除旧的备份,这使得更新过后的当前版本是唯一可用的备份。
更新配置config
config
命令允许你编辑 Composer 的一些基本设置,无论是本地的 composer.json
或者全局的 config.json
文件。
php composer.phar config --list
更改配置-参数
--global (-g): 操作位于 $COMPOSER_HOME/config.json 的全局配置文件。如果不指定该参数,此命令将影响当前项目的 composer.json 文件,或 --file 参数所指向的文件。
--editor (-e): 使用文本编辑器打开 composer.json 文件。默认情况下始终是打开当前项目的文件。当存在 --global 参数时,将会打开全局 composer.json 文件。
--unset: 移除由 setting-key 指定名称的配置选项。
--list (-l): 显示当前配置选项的列表。当存在 --global 参数时,将会显示全局配置选项的列表。
--file="..." (-f): 在一个指定的文件上操作,而不是 composer.json。注意:不能与 --global 参数一起使用。
创建项目create-project
你可以使用 Composer 从现有的包中创建一个新的项目。这相当于执行了一个 git clone
或 svn checkout
命令后将这个包的依赖安装到它自己的 vendor 目录。
此命令有几个常见的用途:
- 你可以快速的部署你的应用。
- 你可以检出任何资源包,并开发它的补丁。
- 多人开发项目,可以用它来加快应用的初始化。
要创建基于 Composer 的新项目,你可以使用 "create-project" 命令。传递一个包名,它会为你创建项目的目录。你也可以在第三个参数中指定版本号,否则将获取最新的版本。
如果该目录目前不存在,则会在安装过程中自动创建。
php composer.phar create-project doctrine/orm path 2.2.*
此外,你也可以无需使用这个命令,而是通过现有的 composer.json
文件来启动这个项目。
默认情况下,这个命令会在 packagist.org 上查找你指定的包。
创建项目-参数
- --repository-url: 提供一个自定义的储存库来搜索包,这将被用来代替 packagist.org。可以是一个指向
composer
资源库的 HTTP URL,或者是指向某个packages.json
文件的本地路径。 - --stability (-s): 资源包的最低稳定版本,默认为
stable
。 - --prefer-source: 当有可用的包时,从
source
安装。 - --prefer-dist: 当有可用的包时,从
dist
安装。 - --dev: 安装
require-dev
字段中列出的包。 - --no-install: 禁止安装包的依赖。
- --no-plugins: 禁用 plugins。
- --no-scripts: 禁止在根资源包中定义的脚本执行。
- --no-progress: 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。
- --keep-vcs: 创建时跳过缺失的 VCS 。如果你在非交互模式下运行创建命令,这将是非常有用的。
打印自动加载索引 dump-autoload
某些情况下你需要更新 autoloader,例如在你的包中加入了一个新的类。你可以使用 dump-autoload
来完成,而不必执行 install
或 update
命令。
此外,它可以打印一个优化过的,符合 PSR-0/4 规范的类的索引,这也是出于对性能的可考虑。在大型的应用中会有许多类文件,而 autoloader 会占用每个请求的很大一部分时间,使用 classmaps 或许在开发时不太方便,但它在保证性能的前提下,仍然可以获得 PSR-0/4 规范带来的便利。
打印自动加载索引-参数
- --optimize (-o): 转换 PSR-0/4 autoloading 到 classmap 获得更快的载入速度。这特别适用于生产环境,但可能需要一些时间来运行,因此它目前不是默认设置。
- --no-dev: 禁用 autoload-dev 规则。
诊断 diagnose
如果你觉得发现了一个 bug 或是程序行为变得怪异,你可能需要运行 diagnose
命令,来帮助你检测一些常见的问题。
php composer.phar diagnose
归档 archive
此命令用来对指定包的指定版本进行 zip/tar 归档。它也可以用来归档你的整个项目,不包括 excluded/ignored(排除/忽略)的文件。
php composer.phar archive vendor/package 2.0.21 --format=zip
归档-参数
- --format (-f): 指定归档格式:tar 或 zip(默认为 tar)。
- --dir: 指定归档存放的目录(默认为当前目录)。
获取帮助信息 help
使用 help
可以获取指定命令的帮助信息。
php composer.phar help install