Справочники, инструменты, документация

Composer на OpenServer (в Windows) и использование

В OpenServer по умолчанию уже установлен Composer. Находится он в зависимости от выбранной версии PHP (устанавливается в настройках OpenServer) в директории «OSPanel\modules\PHP_*\».

Работа с Composer в OpenServer по умолчанию осуществляется в собственной консоли. Для того чтобы открыть эту консоль необходимо нажать на значок Open Server правой кнопкой мыши в области уведомлений и в открывшемся контекстном меню найти соответствующий пункт.

Пункт в контекстном меню OpenServer для открытия консоли

В консоли для проверки того, что Composer подключен, например, можно ввести команду:

composer
Консоль OpenServer

Эта команда также отобразит версию Composer.

Если при выполнении этой команды отобразится сообщение, что версия Composer устарела, то её можно обновить. Осуществляется это посредством выполнения следующей команды:

composer self-update

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

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

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

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

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

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

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

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

Установка

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

Если выполнить команду composer, то вы увидите длинный перечень его возможностей.

Установка пакетов из файла composer.json в проект

Продолжим работу с командной строкой. Сначала перейдём в рабочую папку проекта (если вы установили OpenServer в стандартную папку, то, например, так:

cd C:\ospanel\domains\localhost

Теперь выполним последовательно команды

composer init

и

composer install

На этом инициализация закончена. Можно заметить, что в проекте появилась новая папка с именем vendor.

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

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

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

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

require_once "vendor/autoload.php";

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

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

fzaninotto/faker

Теперь мы можем попросить composer установить библиотеку. Для этого введите команду

composer require <имя библиотеки> 

Composer загрузит и установит библиотеку в папку vendor. Останется подключить установленную библиотеку в сценарии и можно её использовать.

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

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

composer require wixel/gump

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

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.

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