在PHP composer.json
文件中,require
字段包含许多键/值对。
"require": {
"php": ">=5.3.3",
"symfony/console": "~2.3@dev",
"symfony/finder": "2.2.1",
"symfony/yaml": "2.2.1",
"symfony/process": "2.2.1",
"symfony/validator": "2.2.1",
"n98/junit-xml": "dev-master",
"fzaninotto/faker": "1.1.0",
"composer/composer": "dev-master"
},
每个键/值对的值究竟是用来做什么的?
我知道这些概念上只是版本号。例如,下面的
"symfony/finder": "2.2.1"
告诉编写器需要symfony/finder
包的2.2.1
版本。
我不清楚的是
允许版本控制的语法(即
~2.3@dev
是什么意思)为什么有些版本只是文本(
dev-master
)
我的假设是这些在某种程度上与版本控制系统中的分支或标签有关,或者可能是在包的composer.json
文件中定义的显式版本,但我还没有能够收集到,确切地说,这是如何工作的。
如果有人知道,或者能给我指出手册中解释这一点的正确部分,我将不胜感激。
- ~2.3@dev表示:"使用~指定最小版本,但允许指定的最后一个数字向上",dev表示它是一个开发版本,"可用选项(按稳定性顺序)是dev, alpha, beta, RC和stable。"
- 表示它是一个主分支
所有这些都是我在这里找到的:
- http://getcomposer.org/doc/01-basic-usage.md包版本
- http://getcomposer.org/doc/04-schema.md minimum-stability
- http://getcomposer.org/doc/articles/aliases.md
- http://getcomposer.org/doc/04-schema.md require-dev