Ответ
Секция require в файле composer.json — это обязательный раздел, который определяет список пакетов (зависимостей), необходимых для работы вашего PHP-проекта в production-среде.
Синтаксис и пример:
{
"require": {
"php": ">=8.1",
"laravel/framework": "^10.0",
"guzzlehttp/guzzle": "^7.0",
"ext-json": "*"
}
}
Ключевые моменты:
- Формат:
"vendor/package-name": "version-constraint". - Установка: После добавления зависимостей в
requireнеобходимо выполнитьcomposer install. Composer скачает указанные пакеты и их зависимости, создастvendor/директорию и сгенерируетcomposer.lock. - Ограничения версий:
^10.0— совместимо с версиями>=10.0.0и<11.0.0(рекомендуемый формат).~10.5.0— совместимо с>=10.5.0и<10.6.0."8.*"или"8.x"— любая версия в мажорной ветке 8."dev-main"— установка из конкретной ветки репозитория.
- Специальные зависимости:
"php"— указывает минимальную требуемую версию PHP."ext-json"— требует наличие PHP-расширенияjson.
- Отличие от
require-dev: Зависимости для разработки (тестирование, статический анализ, линтинг) указываются в отдельной секции"require-dev". Они не устанавливаются в production-среде при использовании флага--no-dev.
Практическое использование:
- Добавить пакет:
composer require vendor/package. - Обновить зависимости после ручного изменения
composer.json:composer update. - Установить зависимости из существующего
composer.lock:composer install(гарантирует одинаковые версии у всех разработчиков).