php - PHP Composer 的键/值对中的值代表什么?

标签 php composer-php

在 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"

告诉 Composer 需要 symfony/finder 软件包的 2.2.1 版本。

我不清楚的是

  1. 允许版本控制的语法(即 ~2.3@dev 的含义)

  2. 为什么有些版本只是文本(dev-master)

我的假设是这些在某种程度上与版本控制系统中的分支或标签有关,或者可能与包的 composer.json 文件中定义的显式版本有关,但我无法了解如何,确切地说,这有效。

如果有人知道,或者可以指出我the manual的正确部分如果对此有解释,我将不胜感激。

最佳答案

  1. ~2.3@dev 的意思是:“使用 ~ 指定最低版本,但允许指定的最后一位数字向上。” dev 表示它是开发版本,“可用选项(按稳定性顺序)是 dev、alpha、beta、RC 和 stable。”
  2. 这意味着它是一个主分支

所有这些都是我在这里找到的:

关于php - PHP Composer 的键/值对中的值代表什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16846914/

相关文章:

php - Slim Framework 和 Eloquent ORM

php - JavaScript 显然会等待每个 AJAX 调用,然后再循环发送另一个调用

php - 如何处理 Twig 中数组中的缺失值

javascript - PHP $_POST 在 AJAX 发布请求期间为空

php - 如何在 Laravel 4 中连接表

php - 使用 php 和 mysql 时出现 WHERE email NOT IN (%s) 问题

php - 自动加载器导致找不到类

php - Composer 安装 * file_put_contents * 无法打开流

php - Symfony - app_dev.php 中的 ClassNotFoundException

composer-php - 非空 PSR-4 前缀必须以命名空间分隔符结尾