update README.md 04-schema.md 05-repositories.md
This commit is contained in:
parent
8037c17c09
commit
524ec8e97a
10
README.md
10
README.md
|
@ -10,13 +10,13 @@ Composer 中文文档
|
||||||
- [基本用法](/cn-introduction/01-basic-usage.md)
|
- [基本用法](/cn-introduction/01-basic-usage.md)
|
||||||
- [库](/cn-introduction/02-libraries.md)
|
- [库](/cn-introduction/02-libraries.md)
|
||||||
- [命令行](/cn-introduction/03-cli.md)
|
- [命令行](/cn-introduction/03-cli.md)
|
||||||
- [Schema](/cn-introduction/04-schema.md)
|
- [架构](/cn-introduction/04-schema.md)
|
||||||
- [Repositories](/cn-introduction/05-repositories.md)
|
- [资源库](/cn-introduction/05-repositories.md)
|
||||||
- [Community](/cn-introduction/06-community.md)
|
- [社区](/cn-introduction/06-community.md)
|
||||||
|
|
||||||
## Articles
|
## Articles
|
||||||
- [Aliases](/cn-introduction/articles/aliases.md)
|
- [别名](/cn-introduction/articles/aliases.md)
|
||||||
Alias branch names to versions
|
版本分支名称的别名。
|
||||||
- [自定义安装程序](/cn-introduction/articles/custom-installers.md)
|
- [自定义安装程序](/cn-introduction/articles/custom-installers.md)
|
||||||
修改某些特殊类型包的安装方式。
|
修改某些特殊类型包的安装方式。
|
||||||
- [Handling Private Packages With Satis](/cn-introduction/articles/handling-private-packages-with-satis.md)
|
- [Handling Private Packages With Satis](/cn-introduction/articles/handling-private-packages-with-satis.md)
|
||||||
|
|
|
@ -2,6 +2,46 @@
|
||||||
|
|
||||||
本章将解释所有在 `composer.json` 中可用的字段。
|
本章将解释所有在 `composer.json` 中可用的字段。
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
- [composer.json](#composerjson)
|
||||||
|
- [JSON schema](#json-schema)
|
||||||
|
- [Root 包](#root-包)
|
||||||
|
- [属性](#属性)
|
||||||
|
- 包名 `name`
|
||||||
|
- 描述 `description`
|
||||||
|
- 版本 `version`
|
||||||
|
- 安装类型 `type`
|
||||||
|
- 关键字 `keywords`
|
||||||
|
- 项目主页 `homepage`
|
||||||
|
- 版本发布时间 `time`
|
||||||
|
- 许可协议 `license`
|
||||||
|
- 作者 `authors`
|
||||||
|
- 支持 `support`
|
||||||
|
- [Package links](#package-links)
|
||||||
|
- [require](#require)
|
||||||
|
- require-dev <span>(root-only)</span>
|
||||||
|
- [conflict](#conflict)
|
||||||
|
- [replace](#replace)
|
||||||
|
- [provide](#provide)
|
||||||
|
- suggest
|
||||||
|
- autoload
|
||||||
|
- PSR-0
|
||||||
|
- Classmap
|
||||||
|
- Files
|
||||||
|
- include-path
|
||||||
|
- target-dir
|
||||||
|
- minimum-stability <span>(root-only)</span>
|
||||||
|
- prefer-stable <span>(root-only)</span>
|
||||||
|
- repositories <span>(root-only)</span>
|
||||||
|
- config <span>(root-only)</span>
|
||||||
|
- scripts <span>(root-only)</span>
|
||||||
|
- extra
|
||||||
|
- bin
|
||||||
|
- archive
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
## JSON schema
|
## JSON schema
|
||||||
|
|
||||||
我们有一个 [JSON schema](http://json-schema.org) 格式化文档,它也可以被用来验证你的 `composer.json` 文件。事实上,它已经被 `validate` 命令所使用。 你可以在这里找到它: [`res/composer-schema.json`](https://github.com/composer/composer/blob/master/res/composer-schema.json).
|
我们有一个 [JSON schema](http://json-schema.org) 格式化文档,它也可以被用来验证你的 `composer.json` 文件。事实上,它已经被 `validate` 命令所使用。 你可以在这里找到它: [`res/composer-schema.json`](https://github.com/composer/composer/blob/master/res/composer-schema.json).
|
||||||
|
|
|
@ -1,70 +1,44 @@
|
||||||
# Repositories
|
# 资源库
|
||||||
|
|
||||||
This chapter will explain the concept of packages and repositories, what kinds
|
本章将解释包和库的概念,什么样的存储库是可用的,以及它们如何工作。
|
||||||
of repositories are available, and how they work.
|
|
||||||
|
|
||||||
## Concepts
|
## 概述
|
||||||
|
|
||||||
Before we look at the different types of repositories that exist, we need to
|
在此之前,我们看到存在不同类型的资源库,我们需要了解一些基本概念,以理解 Composer 是如何构建于其上的。
|
||||||
understand some of the basic concepts that composer is built on.
|
|
||||||
|
|
||||||
### Package
|
### 包
|
||||||
|
|
||||||
Composer is a dependency manager. It installs packages locally. A package is
|
Composer 是一个依赖管理工具。它在本地安装一些资源包。一个包本质上就是一个包含东西的目录。通常情况下它存储 PHP 代码,但在理论上它可以是任何东西。并且它包含一个描述,其中有一个名称和一个版本号,这个名称和版本号用于识别该包。
|
||||||
essentially just a directory containing something. In this case it is PHP
|
|
||||||
code, but in theory it could be anything. And it contains a package
|
|
||||||
description which has a name and a version. The name and the version are used
|
|
||||||
to identify the package.
|
|
||||||
|
|
||||||
In fact, internally composer sees every version as a separate package. While
|
事实上,在 composer 内部将每一个版本都视为一个单独的包。尽管在你使用 composer 时这种区别无关紧要,但当你想改变它时,这就显得至关重要。
|
||||||
this distinction does not matter when you are using composer, it's quite
|
|
||||||
important when you want to change it.
|
|
||||||
|
|
||||||
In addition to the name and the version, there is useful metadata. The information
|
除了名称和版本号,还存放了有用的元数据。与安装关系最密切的是 source 信息,它申明了在哪里可以获得资源包的内容。包数据指向包内容,并有两种指向方式:dist 和 source。
|
||||||
most relevant for installation is the source definition, which describes where
|
|
||||||
to get the package contents. The package data points to the contents of the
|
|
||||||
package. And there are two options here: dist and source.
|
|
||||||
|
|
||||||
**Dist:** The dist is a packaged version of the package data. Usually a
|
**Dist:** dist 指向一个存档,该存档是对一个资源包的某个版本的数据进行的打包。通常是已经发行的稳定版本。
|
||||||
released version, usually a stable release.
|
|
||||||
|
|
||||||
**Source:** The source is used for development. This will usually originate
|
**Source:** source 指向一个开发中的源。这通常是一个源代码仓库,例如 git。当你想要对下载下来的资源包进行修改时,可以这样获取。
|
||||||
from a source code repository, such as git. You can fetch this when you want
|
|
||||||
to modify the downloaded package.
|
|
||||||
|
|
||||||
Packages can supply either of these, or even both. Depending on certain
|
你可以使用其中任意一个,或者同时使用。这取决于其它的一些因素,比如“user-supplied 选项”和“包的稳定性”,前者将会被优先考虑。
|
||||||
factors, such as user-supplied options and stability of the package, one will
|
|
||||||
be preferred.
|
|
||||||
|
|
||||||
### Repository
|
### 资源库
|
||||||
|
|
||||||
A repository is a package source. It's a list of packages/versions. Composer
|
一个资源库是一个包的来源。它是一个 packages/versions 的列表。Composer 将查看所有你定义的 repositories 以找到你项目需要的资源包。
|
||||||
will look in all your repositories to find the packages your project requires.
|
|
||||||
|
|
||||||
By default only the Packagist repository is registered in Composer. You can
|
默认情况下已经将 Packagist.org 注册到 Composer。你可以在 `composer.json` 中申明更多的资源库,把它们加入你的项目中。
|
||||||
add more repositories to your project by declaring them in `composer.json`.
|
|
||||||
|
|
||||||
Repositories are only available to the root package and the repositories
|
资源库的定义仅可用于“root 包”,而在你依赖的包中定义的资源库将不会被加载。如果你想了解其中的原因,请阅读 [FAQ entry](faqs/why-can't-composer-load-repositories-recursively.md)。
|
||||||
defined in your dependencies will not be loaded. Read the
|
|
||||||
[FAQ entry](faqs/why-can't-composer-load-repositories-recursively.md) if you
|
|
||||||
want to learn why.
|
|
||||||
|
|
||||||
## Types
|
## Types
|
||||||
|
|
||||||
### Composer
|
### Composer
|
||||||
|
|
||||||
The main repository type is the `composer` repository. It uses a single
|
主资源库的类型为 `composer`。它使用一个单一的 `packages.json` 文件,包含了所有的资源包元数据。
|
||||||
`packages.json` file that contains all of the package metadata.
|
|
||||||
|
|
||||||
This is also the repository type that packagist uses. To reference a
|
这也是 packagist.org 所使用的资源类型。要引用一个 `composer` 资源库,只需要提供一个存放 `packages.json` 文件的 **目录路径**。比如要引用 `packagist.org` 下的 `/packages.json`,它的 URL 就应该是 `packagist.org`。而 `example.org/packages.json` 的 URL 应该是 `example.org`。
|
||||||
`composer` repository, just supply the path before the `packages.json` file.
|
|
||||||
In case of packagist, that file is located at `/packages.json`, so the URL of
|
|
||||||
the repository would be `packagist.org`. For `example.org/packages.json` the
|
|
||||||
repository URL would be `example.org`.
|
|
||||||
|
|
||||||
#### packages
|
#### packages
|
||||||
|
|
||||||
The only required field is `packages`. The JSON structure is as follows:
|
唯一必须的字段是 `packages`。它的 JSON 结构如下:
|
||||||
|
|
||||||
{
|
{
|
||||||
"packages": {
|
"packages": {
|
||||||
|
@ -77,14 +51,13 @@ The only required field is `packages`. The JSON structure is as follows:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
The `@composer.json` marker would be the contents of the `composer.json` from
|
`@composer.json` 标记将会从 作为最低版本: would be the contents of the `composer.json` from that package version including as a minimum:
|
||||||
that package version including as a minimum:
|
|
||||||
|
|
||||||
* name
|
* name
|
||||||
* version
|
* version
|
||||||
* dist or source
|
* dist or source
|
||||||
|
|
||||||
Here is a minimal package definition:
|
这是一个最小的包定义:
|
||||||
|
|
||||||
{
|
{
|
||||||
"name": "smarty/smarty",
|
"name": "smarty/smarty",
|
||||||
|
@ -95,7 +68,7 @@ Here is a minimal package definition:
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
It may include any of the other fields specified in the [schema](04-schema.md).
|
它可以包含任何在 [架构](04-schema.md) 中介绍的字段。
|
||||||
|
|
||||||
#### notify-batch
|
#### notify-batch
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue