Composer — это инструмент для управления зависимостями в PHP. Он позволяет вам объявить библиотеки, от которых зависит ваш проект, и он будет устанавливать и обновлять их за вас.
Как установить через composer?
Для этого заходим на официальный сайт и нажимаем кнопку download. После чего нажимаем на Composer-Setup.exe. После чего просто запускаем exe файл и производим установку.
По завершению установки снова открываем командную строку и пишем composer.
Как работает Composer?
Composer работает через интерфейс командной строки и устанавливает зависимости (например библиотеки) для приложения. Он также позволяет пользователям устанавливать PHP-приложения, которые доступны на packagist.org, который является его основным репозиторием, где содержатся все доступные пакеты.
Для чего нужен файл composer Lock?
lock. Файл composer. lock сохраняет текущий список установленных зависимостей и их версии. Таким образом, на момент, когда версии зависимостей уже будут обновлены (команда update), другие люди, которые будут клонировать ваш проект, получат те же самые версии.
Composer: чем отличается require от require-dev
В require добавляются зависимости, которые необходимы для работы пакета.
В require-dev добавляются зависимости, которые нужны для разработки самого пакета. Например, phpunit/phpunit.
Данные для управления зависимостями Composer берёт из файла composer.json, который можно найти в корне проекта, в нашем случае сайта Laravel.
В том случае, если вы клонировали исходники Laravel с GibHub, то необходимо провести её установку. Для этого в командной строке нужно выполнить одну единственную команду:
// Если Composer установлен глобально
composer install
// Если нет
php composer.phar install
Composer для чайников
Возьмем для примера какой-нибудь проект на Laravel.
Соответственно, для работы этого проекта нужно несколько библиотек
Библиотеки перечислены в файле composer.json — ключевой файл при работе с composer
В этом проекте используется 6 библиотек. Соответственно, если разработчик решит опубликовать этот проект на github, то ему достаточно закинуть в репу саму папку со скриптами и составить composer.json, в котором будут описаны библиотеки, необходимые для работы этого проекта. Простота очевидна: в репу не нужно вслед за файлами прицепом тащить все нужные библиотеки. Занимает меньше места, проще распространять проект.
Алгоритм работы:
- скачали проект с Git;
- Запустили в консоле composer install;
- После установки появляется папка vendor, куда складываются установленные пакеты и формируется файл autoload.php в этой папке;
- Этот файл подключаем к проекту и всё — библиотеки подключены, можно спокойно с ними работать;
Простота очевидна: не нужно скачивать и подключать библиотеки и их зависимости самостоятельно, composer всё сделает за Вас. И вся эта пачка подключается одним единственным файлом autoload.php.
Все пакеты, которые лежат в vendor, добавляются в автозагрузчик. При этом composer опирается на файлы composer.json, которые должны быть у каждого пакета. Формирование composer.json пакета — это задача разработчика пакета, от потребителя пакета требуется лишь описать в composer.json проекта, какие пакеты нужно подключить.
Это пример composer.json проекта:
В секции require прописана зависимость этого пакета — библиотека, необходимая для работы другой библиотеки. В данном случае, т.е. с точки зрения потребителя пакетов, всевозможные зависимости пакетов — это не наша «забота», с зависимостями composer разберётся сам.
Пространство имён пакета прописано в секции autoload.
«Dotenv\\»: — наименование пространства имён
«Dotenv\\Tests\\»: — наименование пространства имён
«: «src/» — директория, в которой лежат файлы с классами пакета
: «tests/Dotenv/» — директория, в которой лежат файлы с классами пакета
// Если Composer установлен глобально
composer install
// Если нет
php composer.phar install
Более подробно: https://habr.com/ru/articles/439200/