From bd0b416d3b8ba5d3fc4750f7d95137d51ebee217 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=90=E6=AD=A6?= Date: Wed, 8 Jan 2014 08:54:51 +0800 Subject: [PATCH] update 03-cli.md --- cn-introduction/03-cli.md | 102 +++++++++++++++++++------------------- 1 file changed, 51 insertions(+), 51 deletions(-) diff --git a/cn-introduction/03-cli.md b/cn-introduction/03-cli.md index e1cca48..f1ea1c5 100644 --- a/cn-introduction/03-cli.md +++ b/cn-introduction/03-cli.md @@ -1,4 +1,4 @@ - + # 命令行 你已经学会了如何使用命令行界面做一些事情。本章将向你介绍所有可用的命令。 @@ -46,7 +46,7 @@ - [COMPOSER_NO_INTERACTION](#COMPOSER_NO_INTERACTION) --- - + ## 全局参数 下列参数可与每一个命令结合使用: @@ -64,14 +64,14 @@ * **--no-ansi:** 关闭 ANSI 输出。 * **--version (-V):** 显示当前应用程序的版本信息。 - + ## 进程退出代码 * **0:** 正常 * **1:** 通用/未知错误 * **2:** 依赖关系处理错误 - + ## 初始化 `init` 在 [“库”](02-libraries.md) 那一章我们看到了如何手动创建 `composer.json` 文件。实际上还有一个 `init` 命令可以更容易的做到这一点。 @@ -80,7 +80,7 @@ $ php composer.phar init - + ### 初始化-参数 * **--name:** 包的名称。 @@ -91,7 +91,7 @@ * **--require-dev:** 开发版的依赖包,内容格式与 **--require** 相同。 * **--stability (-s):** `minimum-stability` 字段的值。 - + ## 安装 `install` `install` 命令从当前目录读取 `composer.json` 文件,处理了依赖关系,并把其安装到 `vendor` 目录下。 @@ -102,7 +102,7 @@ 如果没有 `composer.lock` 文件,composer 将在处理完依赖关系后创建它。 - + ### 安装-参数 * **--prefer-source:** 下载包的方式有两种: `source` @@ -116,7 +116,7 @@ * **--no-progress:** 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 * **--optimize-autoloader (-o):** 转换 PSR-0 autoloading 到 classmap 可以获得更快的加载支持。特别是在生产环境下建议这么做,但由于运行需要一些时间,因此并没有作为默认值。 - + ## 更新 `update` 为了获取依赖的最新版本,并且升级 `composer.lock` 文件,你应该使用 `update` 命令。 @@ -133,7 +133,7 @@ $ php composer.phar update vendor/* - + ### 更新-参数 * **--prefer-source:** 当有可用的包时,从 `source` 安装。 @@ -148,7 +148,7 @@ * **--lock:** 仅更新 lock 文件的 hash,取消有关 lock 文件过时的警告。 * **--with-dependencies** 同时更新白名单内包的依赖关系,这将进行递归更新。 - + ## 申明依赖 `require` `require` 命令增加新的依赖包到当前目录的 `composer.json` 文件中。 @@ -161,7 +161,7 @@ $ php composer.phar require vendor/package:2.* vendor/package2:dev-master - + ### 申明依赖-参数 * **--prefer-source:** 当有可用的包时,从 `source` 安装。 @@ -170,7 +170,7 @@ * **--no-update:** 禁用依赖关系的自动更新。 * **--no-progress:** 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 - + ## 全局执行 `global` `global` 命令允许你在 [COMPOSER_HOME](#composer-home) 目录下执行其它命令,像 `install`、`require` 或 `update`。 @@ -183,7 +183,7 @@ $ php composer.phar global update - + ## 搜索 `search` `search` 命令允许你为当前项目搜索依赖包,通常它只搜索 packagist.org 上的包,你可以简单的输入你的搜索条件。 @@ -192,12 +192,12 @@ 您也可以通过传递多个参数来进行多条件搜索。 - + ### 搜索-参数 * **--only-name (-N):** 仅针对指定的名称搜索(完全匹配)。 - + ## 展示 `show` 列出所有可用的软件包,你可以使用 `show` 命令。 @@ -227,14 +227,14 @@ $ php composer.phar show monolog/monolog 1.0.2 - + ### 展示-参数 * **--installed (-i):** 列出已安装的依赖包。 * **--platform (-p):** 仅列出平台软件包(PHP 与它的扩展)。 * **--self (-s):** 仅列出当前项目信息。 - + ## 依赖性检测 `depends` `depends` 命令可以查出已安装在你项目中的某个包,是否正在被其它的包所依赖,并列出他们。 @@ -247,19 +247,19 @@ symfony/monolog-bridge symfony/symfony - + ### 依赖性检测-参数 * **--link-type:** 检测的类型,默认为 `require` 也可以是 `require-dev`。 - + ## 有效性检测 `validate` 在提交 `composer.json` 文件,和创建 tag 前,你应该始终运行 `validate` 命令。它将检测你的 `composer.json` 文件是否是有效的 $ php composer.phar validate - + ## 依赖包状态检测 `status` 如果你经常修改依赖包里的代码,并且它们是从 source(自定义源)进行安装的,那么 `status` 命令允许你进行检查,如果你有任何本地的更改它将会给予提示。 @@ -273,7 +273,7 @@ vendor/seld/jsonlint: M README.mdown - + ## 自我更新 `self-update` 将 Composer 自身升级到最新版本,只需要运行 `self-update` 命令。它将替换你的 `composer.phar` 文件到最新版本。 @@ -288,20 +288,20 @@ $ sudo composer self-update - + ### 自我更新-参数 * **--rollback (-r):** 回滚到你已经安装的最后一个版本。 * **--clean-backups:** 在更新过程中删除旧的备份,这使得更新过后的当前版本是唯一可用的备份。 - + ## 更改配置 `config` `config` 命令允许你编辑 Composer 的一些基本设置,无论是本地的 `composer.json` 或者全局的 `config.json` 文件。 $ php composer.phar config --list - + ### 更改配置-使用方法 `config [options] [setting-key] [setting-value1] ... [setting-valueN]` @@ -310,7 +310,7 @@ 有效的配置选项,请查看“架构”章节的 [config](04-schema.md#config) 。 - + ### 更改配置-参数 * **--global (-g):** 操作位于 `$COMPOSER_HOME/config.json` 的全局配置文件。如果不指定该参数,此命令将影响当前项目的 composer.json 文件,或 `--file` 参数所指向的文件。 @@ -319,14 +319,14 @@ * **--list (-l):** 显示当前配置选项的列表。当存在 `--global` 参数时,将会显示全局配置选项的列表。 * **--file="..." (-f):** 在一个指定的文件上操作,而不是 composer.json。注意:不能与 `--global` 参数一起使用。 - + ### 修改包来源 除了修改配置选项, `config` 命令还支持通过以下方法修改来源信息: $ php composer.phar config repositories.foo vcs http://github.com/foo/bar - + ## 创建项目 `create-project` 你可以使用 Composer 从现有的包中创建一个新的项目。这相当于执行了一个 `git clone` 或 `svn checkout` 命令后将这个包的依赖安装到它自己的 vendor 目录。 @@ -347,7 +347,7 @@ 默认情况下,这个命令会在 packagist.org 上查找你指定的包。 - + ### 创建项目-参数 * **--repository-url:** 提供一个自定义的储存库来搜索包,这将被用来代替 packagist.org。可以是一个指向 `composer` 资源库的 HTTP URL,或者是指向某个 `packages.json` 文件的本地路径。 @@ -361,61 +361,61 @@ * **--no-progress:** 移除进度信息,这可以避免一些不处理换行的终端或脚本出现混乱的显示。 * **--keep-vcs:** 创建时跳过缺失的 VCS 。如果你在非交互模式下运行创建命令,这将是非常有用的。 - + ## 打印自动加载索引 `dump-autoload` 某些情况下你需要更新 autoloader,例如在你的包中加入了一个新的类。你可以使用 `dump-autoload` 来完成,而不必执行 `install` 或 `update` 命令。 此外,它可以打印一个优化过的,符合 PSR-0 规范的类的索引,这也是出于对性能的可考虑。在大型的应用中会有许多类文件,而 autoloader 会占用每个请求的很大一部分时间,使用 classmaps 或许在开发时不太方便,但它在保证性能的前提下,仍然可以获得 PSR-0 规范带来的便利。 - + ### 打印自动加载索引-参数 * **--optimize (-o):** 转换 PSR-0 autoloading 到 classmap 获得更快的载入速度。这特别适用于生产环境,但可能需要一些时间来运行,因此它目前不是默认设置。 - + ## 查看许可协议 `licenses` 列出已安装的每个包的名称、版本、许可协议。可以使用 `--format=json` 参数来获取 JSON 格式的输出。 - + ## 执行脚本 `run-script` 你可以运行此命令来手动执行 [脚本](articles/scripts.md),只需要指定脚本的名称,可选的 `--no-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 - + ## 环境变量 你可以设置一些环境变量来覆盖默认的配置。建议尽可能的在 `composer.json` 的 `config` 字段中设置这些值,而不是通过命令行设置环境变量。值得注意的是环境变量中的值,将始终优先于 `composer.json` 中所指定的值。 - + ### COMPOSER 环境变量 `COMPOSER` 可以为 `composer.json` 文件指定其它的文件名。 @@ -424,46 +424,46 @@ $ COMPOSER=composer-other.json php composer.phar install - + ### COMPOSER_ROOT_VERSION 通过设置这个环境变量,你可以指定 root 包的版本,如果程序不能从 VCS 上猜测出版本号,并且未在 `composer.json` 文件中申明。 - + ### COMPOSER_VENDOR_DIR 通过设置这个环境变量,你可以指定 composer 将依赖安装在 `vendor` 以外的其它目录中。 - + ### COMPOSER_BIN_DIR 通过设置这个环境变量,你可以指定 `bin`([Vendor Binaries](articles/vendor-binaries.md))目录到 `vendor/bin` 以外的其它目录。 - + ### http_proxy or HTTP_PROXY 如果你是通过 HTTP 代理来使用 Composer,你可以使用 `http_proxy` 或 `HTTP_PROXY` 环境变量。只要简单的将它设置为代理服务器的 URL。许多操作系统已经为你的服务设置了此变量。 建议使用 `http_proxy`(小写)或者两者都进行定义。因为某些工具,像 git 或 curl 将使用 `http_proxy` 小写的版本。另外,你还可以使用 `git config --global http.proxy ` 来单独设置 git 的代理。 - + ### no_proxy 如果你是使用代理服务器,并且想要对某些域名禁用代理,就可以使用 `no_proxy` 环境变量。只需要输入一个逗号相隔的域名 *排除* 列表。 此环境变量接受域名、IP 以及 CIDR地址块。你可以将它限制到一个端口(例如:`:80`)。你还可以把它设置为 `*` 来忽略所有的 HTTP 代理请求。 - + ### HTTP_PROXY_REQUEST_FULLURI 如果你使用了 HTTP 代理,但它不支持 `request_fulluri` 标签,那么你应该设置这个环境变量为 `false` 或 `0` ,来防止 composer 从 `request_fulluri` 读取配置。 - + ### HTTPS_PROXY_REQUEST_FULLURI 如果你使用了 HTTPS 代理,但它不支持 `request_fulluri` 标签,那么你应该设置这个环境变量为 `false` 或 `0` ,来防止 composer 从 `request_fulluri` 读取配置。 - + ### COMPOSER_HOME `COMPOSER_HOME` 环境变量允许你改变 Composer 的主目录。这是一个隐藏的、所有项目共享的全局目录(对本机的所有用户都可用)。 @@ -473,7 +473,7 @@ - OSX `/Users//.composer`。 - Windows `C:\Users\\AppData\Roaming\Composer`。 - + #### COMPOSER_HOME/config.json 你可以在 `COMPOSER_HOME` 目录中放置一个 `config.json` 文件。在你执行 `install` 和 `update` 命令时,Composer 会将它与你项目中的 `composer.json` 文件进行合并。 @@ -482,7 +482,7 @@ 若 _全局_ 和 _项目_ 存在相同配置项,那么项目中的 `composer.json` 文件拥有更高的优先级。 - + ### COMPOSER_CACHE_DIR `COMPOSER_CACHE_DIR` 环境变量允许你设置 Composer 的缓存目录,这也可以通过 [`cache-dir`](04-schema.md#config) 进行配置。 @@ -491,17 +491,17 @@ - \*nix and OSX `$COMPOSER_HOME/cache`。 - Windows `C:\Users\\AppData\Local\Composer` 或 `%LOCALAPPDATA%/Composer`。 - + ### COMPOSER_PROCESS_TIMEOUT 这个环境变量控制着 Composer 执行命令的等待时间(例如:git 命令)。默认值为300秒(5分钟)。 - + ### COMPOSER_DISCARD_CHANGES 这个环境变量控制着 discard-changes [config option](04-schema.md#config)。 - + ### COMPOSER_NO_INTERACTION 如果设置为1,这个环境变量将使 Composer 在执行每一个命令时都放弃交互,相当于对所有命令都使用了 `--no-interaction`。可以在搭建 *虚拟机/持续集成服务器* 时这样设置。