Перейти к содержанию

Composer: пакетный менеджер для PHP

Пакетный менеджер — это программа для поиска и установки библиотек по их названию.

Пакетный менеджер избавляет от необходимости самостоятельно искать библиотеки, скачивать, распаковывать, разрешать зависимости — все эти задачи он берёт на себя.

Что умеет пакетный менеджер?

  • Находить библиотеки по имени, скачивать и распаковывать их;
  • Автоматически скачивать и устанавливать зависимости для каждой библиотеки;
  • Подключать классы библиотек внутри сценариев;
  • Обновлять библиотеки вместе с зависимостями.

Composer: пакетный менеджер для PHP

В PHP для управления библиотеками используют пакетный менеджер под названием Composer. Это мощный и удобный инструмент, который позволит навсегда забыть про головную боль, связанную с поиском, установкой и разрешением зависимостей у библиотек.

Как начать работу с Composer

  • Скачать Composer;
  • Инициализировать его в проекте;
  • Подключить файл автозагрузки в нужный сценарии;
  • Установить нужную библиотеку.

Установка

Скачате Composer для Windows. Это обычный установочный файл с режимом «мастера», который проведёт вас по всему процессу установки. В конце можно будет проверить его работу, открыв командную строку. Если выполнить команду composer, то вы увидите длинный перечень его возможностей.

Инициализация в проекте

Продолжим работу с командной строкой. Сначала перейдём в рабочую папку проекта (если вы установили OpenServer в стандартную папку, то, например, так: cd C:\ospanel\domains\localhost). Теперь выполним последовательно команды composer init и composer install. На этом инициализация закончена. Можно заметить, что в проекте появилась новая папка с именем vendor.

Подключение сценария автозагрузки

Composer упрощает не только установку библиотек, но и их использование. Он берёт на себя подключение всех необходимых файлов классов библиотеки. За это отвечает специальный сценарий autoload.php. Сценарий autoload.php — единственный файл, который необходимо подключить для использования любых библиотек.

autoload.php использует механизм «автозагрузки». Он перехватывет обращение к классам библиотек и подключает все необходимые сценарии «на лету». Чтобы это всё работало подключите autoload.php в вашем сценарии:

<?php
require_once "vendor/autoload.php";

Установка библиотеки из Composer

Composer скачивает и устанавливает библиотеки по их имени. Это означает, что сначала нужно «нагуглить» нужную библиотеку, перейти на её сайт, и найти там в описании её имя. Например, название библиотеки может быть таким: fzaninotto/faker

Теперь мы можем попросить composer установить библиотеку. Для этого введите команду composer require <имя библиотеки>. Composer загрузит и установит библиотеку в папку vendor. Останется подключить установленную библиотеку в сценарии и можно её использовать.

Подключение библиотеки в сценариях

Рассмотрим подключения и использования на примере библиотеки для валидации форм — GUMP. Установим её командой: composer require wixel/gump.

Теперь подключим библиотеку в сценарии, где происходит валидация формы:

<?php
require 'vendor/autoload.php';

$rules = [
    'email' => 'required|valid_email',
    'password' => 'required|min_len,8',
    'login' => 'required|alpha_numeric',
    'phone' => 'phone_number'
];

$gump = new GUMP('ru');
$gump->validation_rules($rules);
$validated_data = $gump->run($_POST);

Сначала мы подключаем универсальный файл автозагрузки, который отвечает за подключение классов библиотеки: vendor/autoload.php.

Затем создаём новый объект валидатора и вызываем его методы для передачи правил валидации и проверки формы. На этом всё.