Composer

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, в котором будут описаны библиотеки, необходимые для работы этого проекта. Простота очевидна: в репу не нужно вслед за файлами прицепом тащить все нужные библиотеки. Занимает меньше места, проще распространять проект.

Алгоритм работы:

  1. скачали проект с Git;
  2. Запустили в консоле composer install;
  3. После установки появляется папка vendor, куда складываются установленные пакеты и формируется файл autoload.php в этой папке;
  4. Этот файл подключаем к проекту и всё — библиотеки подключены, можно спокойно с ними работать;

Простота очевидна: не нужно скачивать и подключать библиотеки и их зависимости самостоятельно, 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/

Composer
Пролистать наверх