Разница между require-dev и require в PHP?

Опубликовано: 4 Февраля, 2022

Прежде чем понимать разницу между require и require_dev, сначала разберитесь, что такое require и require_dev.

require: These are must packages for the code to run. It defines the actual dependency as well as package version.
require_dev: It defines the packages necessary for developing the project and not needed in production environment.

Примечание . Require и require_dev - важные параметры, доступные в composer.json .

What is composer?
Composer is dependency/parameter manager in php. It can be used to install keep a track of and update project dependency. Composer also takes care of autoload of dependencies that application relies on letting easily use the dependency inside the project without worrying about including them at the top of any given file. Dependency for project are listed within a “composer.json” file which typically located in the project root. This file holds the information about required version of packages for production and development. This file can be edited manually using any text editor or automatically through the command line via command such as “composer require ” or “composer require_dev .
To start using composer in the project first need to create composer.json file. It can be either created manually or simply run composer init. After run composer init in the terminal it will ask some basic information about the project such as package name, description (it is optional), Author and source other information like minimum stability, license and required package.
The require key in the composer.json specifies composers which packages the project depends on require takes an object that maps package names
Example:

{
    "require": {
  
        // name of package.
        "composer/composer:" "1.2.*"
    }
}

В приведенном выше примере «композитор / композитор» указывает имя поставщика и имя проекта, разделенные косой чертой ('/'), а «1.2. *» Указывает имя версии.
Чтобы установить зависимость, необходимо запустить команду composer install, а затем он найдет определенный пакет этим методом для предоставленных ограничений версии и загрузит его в каталог поставщика. По соглашению сторонний код помещается в каталог с именем vendor. Установленная команда также создала файл composer.lock.

Разница между require и require_dev:

  • требовать:
    • Он определяет фактическую зависимость, а также версию пакета.
    • В требовании перечислены пакеты, необходимые для этого пакета.
    • Пакет не будет установлен, если эти требования не будут выполнены.
  • require_dev:
    • Он определяет пакеты, необходимые для разработки проекта.
    • В require_dev перечислены пакеты, необходимые для разработки этого пакета, запуска тестов и т. Д.
    • Требования разработчика к корневому пакету установлены по умолчанию. И установка, и обновление поддерживают параметр –no-dev, который предотвращает установку зависимостей dev.