Файл composer.json в Composer
Для использования Composer на практике, должен быть создан отдельный файл composer.json
. Этот файл служит своего рода шпаргалкой для Composer, он будет загружать для вашего проекта только те пакеты (зависимости), которые в нём упомянуты.
Обратите внимание, что Composer также проверяет совместимость версий пакетов для вашего проекта. К примеру, если вы используете старый пакет в вашем проекте, файл composer.json
даст вам об этом знать для избежания возможных проблем в будущем.
У вас есть возможность создать и обновлять файл composer.json
самостоятельно. Я не рекомендуем создавать файл вручную, для этого есть специальная команда composer init
. Если вы перенесли composer.json
из другого проекта, нужно произвести установку содержимого файла командой composer install
Давайте продемонстрируем, насколько полезен composer.json
, создав пробный проект. Наш проект, это простой таймер PHP, позволяющий разработчикам узнать сколько времени тратиться на выполнение той или иной части кода. Это очень полезно при оптимизации и отладке.
Создание проекта в Composer
Создайте новую папку для проекта с названием phptimer
:
mkdir phptimer
Войдите в созданную папку:
cd phptimer
Теперь вам нужен пакет или библиотека с уже реализованным таймером PHP. Лучшее место для поиска пакетов Packagist. Packagist, это официальное хранилище пакетов, созданных для Composer.
Для данного руководство нам понадобиться пакет с таймером. Для этого впишите timer
в поисковое поле, как на картинке снизу. Доступно несколько пакетов таймеров, у каждого есть название и короткое описание того, что он делает. В этом примере мы выбираем phpunit/php-timer
, он имеет наибольшее количество загрузок и большинство звёзд GitHub:
Укажите нужный пакет, чтобы Composer мог добавить его в ваш проект:
composer require phpunit/php-time
Вывод покажет версию phpunit/php-timer:
Using version ^1.0 phpunit/php-timer
Символ каретки ^
определяется Composer, как опция максимальной совместимости. Это означает, что Composer всегда будет обновлять пакет, пока не появится версия, которая каким-либо образом вызовет ошибку. В нашем случае диапазон обновления пакета до 2.0.0
, версия 2.0.0
уже может нарушит обратную совместимость.
После выполнения вышеуказанной команды в вашем каталоге проекта появятся:
- Файл
composer.json
содержит пакеты без указания конкретных версий - Файл
composer.lock
содержит реальные версии пакетов которые были установленны - Папка
vendor
в котором Composer будет хранить все ваши пакеты и зависимости