Composer частина 1. Навіщо його використовувати у PHP проектах та як з ним працювати?

Composer частина 1. Навіщо його використовувати у PHP проектах та як з ним працювати?

  • 2 лютого, 2022
  • читати 10 хв
Денис Розганяєв
Денис Розганяєв Software Engineer у Mobilunity, Викладач Комп'ютерної школи Hillel.

Мова програмування PHP швидко розвивається з кожним роком. Щомісяця реєструють десятки, або навіть сотні бібліотек для роботи з PHP проектами. На сайті packagist зазначено, що з 2012 року було зареєстровано понад 330 тисяч бібліотек. Буквально кілька запущених команд у терміналі — і будь-яка з цих бібліотек вже підключена до вашого проекту.

Звучить привабливо, правда? І все-таки, як це реалізувати?

Саме Composer допоможе впоратися з таким завданням. Отже, Composer — менеджер пакетів для PHP. Цей інструмент дозволяє не тільки встановлювати сторонні пакети, але й оновлювати їх при виході нових версій. Також за допомогою Composer можна легко створювати пакети для бібліотек.

Як встановити Composer

Composer можна встановити локально, директорії проекту, або глобально. Встановивши Composer глобально, його можна використовувати у будь-якому проекті.

Детальну інструкцію зі скачування інсталятора можна прочитати за цим посиланням. Після завантаження файлу установки можемо приступити до установки Composer.

Встановлення — Linux/Unix/macOS

Локально

Після правильного завантаження та встановлення інсталятора у директорії проекту з'явиться файл 'composer.phar'.

Щоб запустити Composer локально, достатньо виконати команду в терміналі, перебуваючи у директорії проекту.

php composer.phar

Глобально

Для того щоб зробити Composer глобальним і викликати його з будь-якої директорії, достатньо виконати команду в терміналі:

mv composer.phar /usr/local/bin/composer

Тепер запустіть composer, щоб запустити менеджер пакетів замість php composer.phar.

Встановлення — Windows

Для того щоб встановити Composer глобально для Windows, потрібно виконати наступні кроки:

Створити новий composer.bat файл поруч з composer.phar:

Використовуючи cmd.exe:

C:\bin> echo @php "%~dp0composer.phar" %*>composer.bat

Використовуючи PowerShell:

PS C:\bin> Set-Content composer.bat '@php "%~dp0composer.phar" %*'

Додайте каталог до змінного середовища PATH, якщо це ще не зроблено. Для отримання інформації про зміну змінної PATH дивіться цю статтю.

Закрийте поточний термінал. У новому вікні терміналу введіть наступну команду, щоб перевірити роботу Composer:

C:\Users\username>composer -V
Composer version 2.0.12 2021-04-01 10:14:59

Синтаксис та опції Composer

Перше, що необхідно сказати, Composer — це консольна утиліта, вона не має графічного інтерфейсу, однак це не робить її гіршою. Її синтаксис досить простий, а подивитися всі опції та команди можна ввівши команду 'composer' у терміналі.

Список усіх опцій та команд можна розглянути нижче:

Найкорисніші:

  • -h — вивести довідку по утиліті
  • -q — скорочений варіант виведення
  • -V — показати версію утиліти
  • -n — не ставити інтерактивні питання
  • -v, -vv, -vvv — налаштування подробиці виводу
  • -d — використовувати вказану робочу директорію

Список команд, що часто використовуються:

  • archive — архівує поточний проект як бібліотеку для відправки в мережу
  • check-platform-reqs — перевіряє, чи дотримані системні вимоги
  • create-project — створює проект на основі пакета в зазначену директорію
  • depends — виводить залежності пакету
  • dump-autoload — оновлює систему автозавантаження класів
  • exec — дозволяє виконувати скрипти із встановлених пакетів
  • init — створює порожній проект у поточній папці
  • list — виводить список доступних команд
  • outdated — виводить список пакетів, для яких є оновлення
  • prohibits — виводить назви пакетів, які заважають встановити вказаний пакет
  • search — пошук пакетів у репозиторіях
  • self-update — оновлення Composer до останньої версії, працює тільки при локальній установці
  • show — інформація про пакет
  • update — оновлює всі пакети до найактуальнішої версії

Встановлення проекту на основі пакету

Швидше за все, для майбутніх проектів, ви використовуватимете фреймворки, щоб мати базовий функціонал з коробки. У таких випадках вам знадобиться розгортати проект на основі існуючого пакета, Composer завантажить пакет з репозиторію і просто розпакує його в потрібну вам директорію.

Для цього використовуйте команду create-project, наприклад:

composer create-project laravel/laravel app_dir

де:

  • composer — звернення до утиліти

  • create-project — команда

  • laravel/laravel — пакет фреймворку laravel

  • app_dir — директорія, в яку Composer розпакує вказаний пакет

Встановлення пакетів

Щоб інсталювати пакет за допомогою Composer, необхідно використовувати команду require. Утиліта встановить вказаний пакет і запише його у файл composer.json.

Наприклад, встановимо пакет для зручного виведення змінних:

composer  require  larapack/dd

Також можна вказати опцію --dev перед написанням назви пакета, щоб пакет був обов'язковим, але використовувався лише у розробці.

Усі доступні пакети можна переглянути в сервісі Packagist.

Оновлення пакетів

Пакети необхідно оновлювати, щоб уникнути уразливостей у проектах та усунення старих проблем з боку підключених бібліотек.

Для оновлення всіх пакетів достатньо ввести команду update:

composer  update

або

composer  update –dev

Видалення пакетів

Для видалення пакета необхідно ввести команду remove та вказати потрібний пакет, також можна додати опцію –dev, якщо це пакет для розробників.

composer  remove  larapack/dd

Можна також видалити непотрібні пакети у файлі composer.json та запустити команду на оновлення.

Скидання автозавантаження

Composer з коробки може бути ролі автозавантажувача класів. Він використовує стандарт PSR-4. Іноді трапляється, що класи закешувалися, і новий клас не помітний у проекті.

У таких випадках необхідно виконати команду скидання:

composer  dump-autoload

або

composer  du

Висновки

Composer це досить потужна утиліта для того, щоб зробити вашу роботу з проектом комфортною. З її допомогою ви легко зможете додавати, оновлювати та видаляти необхідні вам пакети. Також приємним бонусом є те, що утиліта надає автозавантажувач класів із коробки.

У наступній статті ми поговоримо з вами про створення власного пакета за допомогою Composer та про те, як його додавати до сервісу packagist.

Рекомендуємо публікацію по темі