Найти тему

Минимальная база по Composer.

Оглавление
Фото из свободных источников интернета
Фото из свободных источников интернета

Что такое composer?

Composer - это менеджер зависимостей для PHP, написанный на нем же. Он позволяет автоматически устанавливать и обновлять необходимые для работы проекта пакеты, например из GitHub или Packagist. А так же имеет автолодер, что позволяет использовать эти пакеты не подключая их в коде каждый раз, т.е. не использовать лишние `require` и `include`. Достаточно только подключить в проекте файл `vendor\autoload.php` желательно где-нибудь ближе к началу.

Установка

На официальном сайте приведен пример такой установки:

Linux

Большинство дистрибутивов linux имеют composer в своих репозиториях.

Ubuntu: `sudo apt-get install composer`.

ArchLinux: `sudo pacman -S composer`.

CentOS: `sudo yum install composer`.

MacOS

На MacOS можно установить при помощи brew: `brew install composer`.

Windows

На Windows можно скачать официальный инсталлятор.

Так же можно скачать файл composer.phar и использовать его ничего не устанавливая

Основные команды

Список всех команд composer
Список всех команд composer

Создание composer.json для проекта:

composer init

Добавление пакета в composer.json:

composer require <пакет>

Обновление пакетов:

composer update

Установка пакетов:

composer install

Если используется composer.phar тогда в командах вместо composer будет `php composer.phar`

Параметры composer.json

- `name` - имя проекта/пакета, строковое значение вида «вендор/ия_пакета»

- `description` - описание проекта/пакета, строковое значение

- `keywords` - массив ключевых слов, вида «[«ключевое_слово_1», «ключевое_слово_2»]»

- `homepage` - адрес сайта или страницы проекта, строковое значение.

- `license` - лицензия, которая распространяется на пакет, строковое значение, например `BSD-3-Clause` или `MIT`.

- `require` - список зависимостей проекта, содержит записи вида «пакет»: «версия». Версии могут иметь различные параметры. Пример:

- `require-dev` - список зависимости для разработки проекта, обычно включает юнит тесты и другие пакеты позволяющие заниматься отладкой, но не нужные в боевой версии проекта. Записи соответствуют параметру `reqiure`.

- `autoload` - добавление кода в автолодер, содержит записи с указанием стандарта автозагрузки psr-0 или psr-4, например:

В данном примере в автолодер будут добавлены записи по стандарту PSR-4 с неймспейсом App.

Зачем нужен composer.lock

Composer.lock хранит в себе версии пакетов которые используются для разработки. Например, если в `composer.lock ` файле записана версия пакета 2.3.1, то команда `composer install` установить именно эту версию пакета. Это нужно чтобы проект, везде, работал на одинаковых версиях пакетов. Поэтому `composer.lock` файл необходимо включать в git.