Файл 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 будет хранить все ваши пакеты и зависимости
