php

PHP中的require-dev和require之间的区别

2024-04-02

在了解require和require_dev 之间的区别之前,首先要了解require和require_dev是什么。

require:这些是运行代码的必备包。它定义了实际的依赖关系以及包版本。

require_dev:它定义了开发项目所需的包,而不是生产环境中所需的包。

注意: require和require_dev是composer.json中可用的重要参数。

什么是Composer?

Composer是php中的依赖/参数管理器。它可用于安装跟踪和更新项目依赖性。Composer还负责处理依赖项的自动加载,应用程序依赖于它们可以轻松使用项目中的依赖项,而不必担心将它们包含在任何给定文件的顶部。项目的依赖关系列在“composer.json”文件中,该文件通常位于项目根目录中。

此文件包含有关生产和开发所需的软件包版本的信息。可以使用任何文本编辑器手动编辑此文件,也可以通过命令行自动编辑此文件,例如“composer require”或“composer require_dev”。

要在项目中开始使用composer,首先需要创建composer.json文件。它既可以手动创建,也可以只运行composer init。在终端中运行composer init之后,它将询问有关项目的一些基本信息,例如包名称,描述(可选),作者和来源其他信息,如最小稳定性,许可证和所需包。

composer.json中的require键指定组合器,其中包含项目依赖于require,需要一个映射包名称的对象

示例:

    "require": { 

        // 包的名称

        "composer/composer:" "1.2.*"

    } 

}

在上面的示例中,“composer / composer”指定由斜杠('/')分隔的供应商名称和项目名称,“1.2.*”指定版本名称。

要安装依赖项需要运行composer install命令,然后它将找到已定义的包,该方法用于提供的版本约束并将其下载到供应商目录中。它将第三方代码放入名为vendor的目录中。安装的命令还创建了一个composer.lock文件。

require和require_dev之间的区别:

require:

它定义了实际的依赖关系以及包版本。

require列出了此包所需的包。

除非满足这些要求,否则不会安装包。

require_dev:

它定义了开发项目所需的包。

require_dev列出了开发此包或运行测试等所需的包。

默认情况下会安装root包的dev要求。安装或更新都支持“-no-dev”选项,以防止安装dev依赖项。