From 8037c17c0952c6f4f30e9a982df428ce48cd2071 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=88=90=E6=AD=A6?= Date: Tue, 7 Jan 2014 00:13:36 +0800 Subject: [PATCH] update 04-schema.md --- cn-introduction/04-schema.md | 133 +++++++++++------------------------ 1 file changed, 40 insertions(+), 93 deletions(-) diff --git a/cn-introduction/04-schema.md b/cn-introduction/04-schema.md index 16f7a6f..cc833e0 100644 --- a/cn-introduction/04-schema.md +++ b/cn-introduction/04-schema.md @@ -440,18 +440,10 @@ Repositories 并不是递归调用的,只能在“Root包”的 `composer.json 支持以下类型的包资源库: -* **composer:** A composer repository is simply a `packages.json` file served - via the network (HTTP, FTP, SSH), that contains a list of `composer.json` - objects with additional `dist` and/or `source` information. The `packages.json` - file is loaded using a PHP stream. You can set extra options on that stream - using the `options` parameter. -* **vcs:** The version control system repository can fetch packages from git, - svn and hg repositories. -* **pear:** With this you can import any pear repository into your composer - project. -* **package:** If you depend on a project that does not have any support for - composer whatsoever you can define the package inline using a `package` - repository. You basically just inline the `composer.json` object. +* **composer:** 一个 composer 类型的资源库,是一个简单的网络服务器(HTTP、FTP、SSH)上的 `packages.json` 文件,它包含一个 `composer.json` 对象的列表,有额外的 `dist` 和/或 `source` 信息。这个 `packages.json` 文件是用一个 PHP 流加载的。你可以使用 `options` 参数来设定额外的流信息。 +* **vcs:** 从 git、svn 和 hg 取得资源。 +* **pear:** 从 pear 获取资源。 +* **package:** 如果你依赖于一个项目,它不提供任何对 composer 的支持,你就可以使用这种类型。你基本上就只需要内联一个 `composer.json` 对象。 更多相关内容,请查看 [资源库](05-repositories.md)。 @@ -499,71 +491,34 @@ Repositories 并不是递归调用的,只能在“Root包”的 `composer.json ] } -> **Note:** Order is significant here. When looking for a package, Composer -will look from the first to the last repository, and pick the first match. -By default Packagist is added last which means that custom repositories can -override packages from it. +> **注意:** 顺序是非常重要的,当 Composer 查找资源包时,它会按照顺序进行。默认情况下 Packagist 是最后加入的,因此自定义设置将可以覆盖 Packagist 上的包。 ### config (root-only) -A set of configuration options. It is only used for projects. +下面的这一组选项,仅用于项目。 -The following options are supported: +支持以下选项: -* **process-timeout:** Defaults to `300`. The duration processes like git clones - can run before Composer assumes they died out. You may need to make this - higher if you have a slow connection or huge vendors. -* **use-include-path:** Defaults to `false`. If true, the Composer autoloader - will also look for classes in the PHP include path. -* **preferred-install:** Defaults to `auto` and can be any of `source`, `dist` or - `auto`. This option allows you to set the install method Composer will prefer to - use. -* **github-protocols:** Defaults to `["git", "https"]`. A list of protocols to - use when cloning from github.com, in priority order. You can reconfigure it to - prioritize the https protocol if you are behind a proxy or have somehow bad - performances with the git protocol. -* **github-oauth:** A list of domain names and oauth keys. For example using - `{"github.com": "oauthtoken"}` as the value of this option will use `oauthtoken` - to access private repositories on github and to circumvent the low IP-based - rate limiting of their API. -* **vendor-dir:** Defaults to `vendor`. You can install dependencies into a - different directory if you want to. -* **bin-dir:** Defaults to `vendor/bin`. If a project includes binaries, they - will be symlinked into this directory. -* **cache-dir:** Defaults to `$home/cache` on unix systems and - `C:\Users\\AppData\Local\Composer` on Windows. Stores all the caches - used by composer. See also [COMPOSER_HOME](03-cli.md#composer-home). -* **cache-files-dir:** Defaults to `$cache-dir/files`. Stores the zip archives - of packages. -* **cache-repo-dir:** Defaults to `$cache-dir/repo`. Stores repository metadata - for the `composer` type and the VCS repos of type `svn`, `github` and `bitbucket`. -* **cache-vcs-dir:** Defaults to `$cache-dir/vcs`. Stores VCS clones for - loading VCS repository metadata for the `git`/`hg` types and to speed up installs. -* **cache-files-ttl:** Defaults to `15552000` (6 months). Composer caches all - dist (zip, tar, ..) packages that it downloads. Those are purged after six - months of being unused by default. This option allows you to tweak this - duration (in seconds) or disable it completely by setting it to 0. -* **cache-files-maxsize:** Defaults to `300MiB`. Composer caches all - dist (zip, tar, ..) packages that it downloads. When the garbage collection - is periodically ran, this is the maximum size the cache will be able to use. - Older (less used) files will be removed first until the cache fits. -* **prepend-autoloader:** Defaults to `true`. If false, the composer autoloader - will not be prepended to existing autoloaders. This is sometimes required to fix - interoperability issues with other autoloaders. -* **autoloader-suffix:** Defaults to `null`. String to be used as a suffix for - the generated Composer autoloader. When null a random one will be generated. -* **github-domains:** Defaults to `["github.com"]`. A list of domains to use in - github mode. This is used for GitHub Enterprise setups. -* **notify-on-install:** Defaults to `true`. Composer allows repositories to - define a notification URL, so that they get notified whenever a package from - that repository is installed. This option allows you to disable that behaviour. -* **discard-changes:** Defaults to `false` and can be any of `true`, `false` or - `"stash"`. This option allows you to set the default style of handling dirty - updates when in non-interactive mode. `true` will always discard changes in - vendors, while `"stash"` will try to stash and reapply. Use this for CI - servers or deploy scripts if you tend to have modified vendors. +* **process-timeout:** 默认为 `300`。处理进程结束时间,例如:git 克隆的时间。Composer 将放弃超时的任务。如果你的网络缓慢或者正在使用一个巨大的包,你可能要将这个值设置的更高一些。 +* **use-include-path:** 默认为 `false`。如果为 true,Composer autoloader 还将在 PHP include path 中继续查找类文件。 +* **preferred-install:** 默认为 `auto`。它的值可以是 `source`、`dist` 或 `auto`。这个选项允许你设置 Composer 的默认安装方法。 +* **github-protocols:** 默认为 `["git", "https"]`。从 github.com 克隆时使用的协议优先级清单,因此默认情况下将优先使用 git 协议进行克隆。 +* **github-oauth:** 一个域名和 oauth keys 的列表。例如:使用 `{"github.com": "oauthtoken"}` 作为此选项的值,将使用 `oauthtoken` 来访问 github 上的私人仓库,并绕过 low IP-based rate 的 API 限制。 +* **vendor-dir:** 默认为 `vendor`。通过设置你可以安装依赖到不同的目录。 +* **bin-dir:** 默认为 `vendor/bin`。如果一个项目包含二进制文件,它们将被连接到这个目录。 +* **cache-dir:** unix 下默认为 `$home/cache`,Windows 下默认为 `C:\Users\\AppData\Local\Composer`。用于存储 composer 所有的缓存文件。相关信息请查看 [COMPOSER_HOME](03-cli.md#composer-home)。 +* **cache-files-dir:** 默认为 `$cache-dir/files`。存储包 zip 存档的目录。 +* **cache-repo-dir:** 默认为 `$cache-dir/repo`。存储 `composer` 类型的 VCS(`svn`、`github`、`bitbucket`) repos 目录。 +* **cache-vcs-dir:** 默认为 `$cache-dir/vcs`。此目录用于存储 VCS 克隆的 `git`/`hg` 类型的元数据,并加快安装速度。 +* **cache-files-ttl:** 默认为 `15552000`(6个月)。默认情况下 Composer 缓存的所有数据都将在闲置6个月后被删除,这个选项允许你来调整这个时间,你可以将其设置为0以禁用缓存。 +* **cache-files-maxsize:** 默认为 `300MiB`。Composer 缓存的最大容量,超出后将优先清除旧的缓存数据,直到缓存量低于这个数值。 +* **prepend-autoloader:** 默认为 `true`。如果设置为 false,composer autoloader 将不会附加到现有的自动加载机制中。这有时候用来解决与其它自动加载机制产生的冲突。 +* **autoloader-suffix:** 默认为 `null`。Composer autoloader 的后缀,当设置为空时将会产生一个随机的字符串。 +* **github-domains:** 默认为 `["github.com"]`。一个 github mode 下的域名列表。这是用于GitHub的企业设置。 +* **notify-on-install:** 默认为 `true`。Composer 允许资源仓库定义一个用于通知的 URL,以便有人从其上安装资源包时能够得到一个反馈通知。此选项允许你禁用该行为。 +* **discard-changes:** 默认为 `false`,它的值可以是 `true`、`false` 或 `stash`。这个选项允许你设置在非交互模式下,当处理失败的更新时采用的处理方式。`true` 表示永远放弃更改。`"stash"` 表示继续尝试。Use this for CI servers or deploy scripts if you tend to have modified vendors. -Example: +例: { "config": { @@ -573,44 +528,37 @@ Example: ### scripts (root-only) -Composer allows you to hook into various parts of the installation process -through the use of scripts. +Composer 允许你在安装过程中的各个阶段挂接脚本。 -See [Scripts](articles/scripts.md) for events details and examples. +更多细节和案例请查看 [脚本](articles/scripts.md)。 ### extra -Arbitrary extra data for consumption by `scripts`. +任意的,供 `scripts` 使用的额外数据。. -This can be virtually anything. To access it from within a script event -handler, you can do: +这可以是几乎任何东西。若要从脚本事件访问处理程序,你可以这样做: $extra = $event->getComposer()->getPackage()->getExtra(); -Optional. +可选。 ### bin -A set of files that should be treated as binaries and symlinked into the `bin-dir` -(from config). +A set of files that should be treated as binaries and symlinked into the `bin-dir` (from config). See [Vendor Binaries](articles/vendor-binaries.md) for more details. -Optional. +可选。 ### archive -A set of options for creating package archives. +这些选项在创建包存档时使用。 -The following options are supported: +支持以下选项: -* **exclude:** Allows configuring a list of patterns for excluded paths. The - pattern syntax matches .gitignore files. A leading exclamation mark (!) will - result in any matching files to be included even if a previous pattern - excluded them. A leading slash will only match at the beginning of the project - relative path. An asterisk will not expand to a directory separator. +* **exclude:** 允许设置一个需要被排除的路径的列表。使用与 .gitignore 文件相同的语法。一个前导的(!)将会使其变成白名单而无视之前相同目录的排除设定。前导斜杠只会在项目的相对路径的开头匹配。星号为通配符。 -Example: +例: { "archive": { @@ -618,9 +566,8 @@ Example: } } -The example will include `/dir/foo/bar/file`, `/foo/bar/baz`, `/file.php`, -`/foo/my.test` but it will exclude `/foo/bar/any`, `/foo/baz`, and `/my.test`. +在这个例子中我们 include `/dir/foo/bar/file`、`/foo/bar/baz`、`/file.php`、`/foo/my.test` 但排除了 `/foo/bar/any`、`/foo/baz`、`/my.test`。 -Optional. +可选。 -← [Command-line interface](03-cli.md) | [Repositories](05-repositories.md) → +← [命令行](03-cli.md) | [资源库](05-repositories.md) →