Ответ
Dev-зависимости (development dependencies) — это пакеты, необходимые только во время разработки, тестирования или сборки проекта, но не в production-окружении. В Composer они управляются отдельно от основных зависимостей.
Способы добавления:
-
Через командную строку (рекомендуется): Использование флага
--dev(или его алиаса-D) с командойrequire.composer require --dev phpunit/phpunit # Или короче composer require -D phpstan/phpstanЭта команда автоматически добавит пакет в секцию
require-devфайлаcomposer.jsonи установит его. -
Ручное редактирование
composer.json: Можно напрямую добавить пакет в соответствующую секцию.{ "require": { "laravel/framework": "^10.0" }, "require-dev": { "fakerphp/faker": "^1.9", "mockery/mockery": "^1.4", "nunomaduro/collision": "^7.0" } }После редактирования файла нужно выполнить
composer updateдля установки/обновления зависимостей согласно новомуcomposer.json.
Типичные примеры dev-зависимостей:
- Фреймворки для тестирования: PHPUnit, Pest, Codeception.
- Инструменты статического анализа: PHPStan, Psalm, Phan.
- Инструменты стиля кода: PHP_CodeSniffer, PHP-CS-Fixer.
- Генераторы данных: Faker.
- Инструменты для моков: Mockery, Prophecy.
- Локальные серверы/утилиты: Symfony CLI, Laravel Valet (частично).
Ключевое поведение:
При установке зависимощей с флагом --no-dev (что является стандартной практикой для production-развертывания) все пакеты из require-dev игнорируются. Это уменьшает размер развертываемого кода, ускоряет установку и снижает потенциальную поверхность атаки.
# Production-установка (без dev-пакетов)
composer install --no-dev --optimize-autoloader
# Установка для разработки (со всеми пакетами)
composer install