Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124
Physical Address
304 North Cardinal St.
Dorchester Center, MA 02124


Коли ви тільки починаєте працювати з PHP, одна з перших речей, яку вам варто освоїти — це Composer. Це менеджер залежностей, без якого сучасна PHP-розробка просто немислима. Якщо ви коли-небудь замислювалися, як розробники встановлюють сторонні бібліотеки в свої проєкти за лічені секунди, то відповідь проста — Composer. У статті composer для початківців я покажу вам, як з ним працювати з нуля, без зайвих технічних деталей, але з реальними прикладами.
Composer — це інструмент, який автоматизує керування залежностями у PHP-проєктах. Простими словами, він допомагає встановлювати, оновлювати та видаляти сторонні пакети (бібліотеки), які потрібні для роботи вашого додатку. Замість того, щоб вручну завантажувати файли, копіювати їх у папку проєкту та прописувати шляхи — Composer робить це за вас однією командою.
Уявіть, що ви хочете додати до свого проєкту популярну бібліотеку для роботи з датами, наприклад Carbon. Без Composer вам доведеться зайти на GitHub, завантажити архів, розпакувати його, підключити через require. З Composer же достатньо виконати одну команду в терміналі, і все готово.
Перш ніж почати працювати з Composer, його потрібно встановити на ваш комп’ютер. Процес відрізняється залежно від операційної системи, але загалом він досить простий.
Для Windows існує офіційний інсталятор. Завантажте Composer-Setup.exe з офіційного сайту та запустіть його. Інсталятор автоматично знайде PHP на вашому комп’ютері (якщо він встановлений) і додасть Composer до системної змінної PATH. Після цього ви зможете викликати Composer з будь-якої директорії через командний рядок.
На Unix-системах встановлення відбувається через термінал. Відкрийте термінал і виконайте наступні команди:
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
sudo mv composer.phar /usr/local/bin/composerCode language: JavaScript (javascript)Ці команди завантажують інсталятор, запускають його, видаляють тимчасові файли і переміщують виконуваний файл Composer у системну директорію, щоб ви могли викликати його з будь-якого місця.
Перевірте, чи все встановилося правильно, виконавши:
composer --versionЯкщо ви бачите версію Composer — вітаю, встановлення пройшло успішно!


Усі налаштування та залежності вашого проєкту зберігаються у файлі composer.json. Це JSON-файл, у якому ви описуєте, які пакети потрібні вашому додатку, яка має бути їх версія та інші метадані проєкту.
Створити базовий composer.json можна вручну або за допомогою команди composer init. Ця команда запустить інтерактивний майстер, який задасть вам кілька питань про проєкт і згенерує файл автоматично.
Ось приклад простого composer.json:
{
"name": "username/my-project",
"description": "Мій перший проєкт з Composer",
"type": "project",
"require": {
"php": "^8.0",
"monolog/monolog": "^2.0"
},
"autoload": {
"psr-4": {
"App\\": "src/"
}
}
}Code language: JSON / JSON with Comments (json)У секції require ми вказуємо залежності. Тут, наприклад, вказано, що проєкт потребує PHP версії 8.0 або вище та бібліотеку Monolog для логування версії 2.х. Символ ^ означає, що Composer може встановити будь-яку версію 2.х, але не 3.0 — це зручно для контролю сумісності.
Секція autoload — це магія, яка дозволяє PHP автоматично завантажувати ваші класи без явного використання require. Стандарт PSR-4 визначає, як структурувати простори імен у відповідності до файлової структури. У наведеному прикладі всі класи з простором імен App\ будуть шукатися у папці src/.
Тепер, коли ви розумієте структуру composer.json, давайте розглянемо найважливіші команди, які ви використовуватимете щодня.
Ця команда читає файл composer.json та встановлює всі зазначені в ньому залежності. Якщо у проєкті вже існує файл composer.lock (про нього трохи пізніше), то Composer встановить точно ті версії пакетів, що вказані в lock-файлі. Це забезпечує ідентичне оточення на різних машинах.
composer installЗазвичай цю команду виконують, коли клонують проєкт з репозиторію або після того, як хтось інший додав нові залежності.
Коли вам потрібно додати новий пакет у проєкт, використовуйте composer require. Ця команда завантажує пакет, додає його до composer.json у секцію require і оновлює composer.lock.
composer require guzzlehttp/guzzleCode language: JavaScript (javascript)У цьому прикладі ми додаємо Guzzle — популярний HTTP-клієнт для PHP. Composer автоматично визначить останню стабільну версію та встановить її разом з усіма залежностями цього пакету.
Ця команда оновлює всі пакети до останніх версій, які відповідають обмеженням у composer.json. Використовуйте її обережно, особливо в продакшн-проєктах, бо оновлення може принести несподівані зміни.
composer updateМожна оновити лише конкретний пакет:
composer update monolog/monologЯкщо пакет більше не потрібен, його можна видалити:
composer remove guzzlehttp/guzzleComposer видалить пакет з папки vendor/ та з composer.json.
Файл composer.lock генерується автоматично після виконання composer install або composer update. Він містить точний список усіх встановлених пакетів та їх версій, включаючи підзалежності.
Чому це важливо? Уявіть, що ви розробляєте проєкт у команді. У composer.json вказано "monolog/monolog": "^2.0". Сьогодні це може означати версію 2.3.5, а через місяць — 2.4.0. Щоб усі члени команди працювали з однаковими версіями (і щоб на продакшн-сервері було те саме, що і на локальній машині), Composer використовує composer.lock.
Важливо: завжди комітьте composer.lock у систему контролю версій (Git). Це гарантує, що всі розробники працюють з ідентичним набором залежностей.
Packagist — це офіційний репозиторій пакетів для Composer. Тут ви знайдете тисячі готових бібліотек для різних задач: роботи з базами даних, відправки email, обробки зображень, валідації даних тощо.
Щоб знайти потрібний пакет, просто зайдіть на Packagist і скористайтеся пошуком. Наприклад, якщо вам потрібна бібліотека для роботи з PDF, введіть “pdf” у пошук, і ви побачите десятки варіантів з описами, кількістю завантажень та рейтингами.
Перед тим як встановлювати пакет, варто звернути увагу на кілька речей: кількість завантажень (популярні пакети зазвичай надійніші), дату останнього оновлення (активно підтримуваний пакет — добра ознака), наявність документації та ліцензію.


Давайте створимо простий проєкт, який використовує Composer. Припустимо, ми хочемо зробити скрипт, який логує події у файл та надсилає HTTP-запити.
Крок 1: Створюємо папку проєкту
mkdir my-composer-project
cd my-composer-projectКрок 2: Ініціалізуємо Composer
composer initВідповідайте на запитання майстра або просто натискайте Enter, щоб залишити значення за замовчуванням.
Крок 3: Встановлюємо потрібні пакети
composer require monolog/monolog
composer require guzzlehttp/guzzleCode language: JavaScript (javascript)Крок 4: Створюємо файл index.php
<?php
require 'vendor/autoload.php';
use Monolog\Logger;
use Monolog\Handler\StreamHandler;
use GuzzleHttp\Client;
// Створюємо логер
$log = new Logger('my-app');
$log->pushHandler(new StreamHandler('app.log', Logger::INFO));
// Логуємо повідомлення
$log->info('Додаток запущено');
// Надсилаємо HTTP-запит
$client = new Client();
$response = $client->request('GET', 'https://api.github.com/users/github');
$log->info('Отримано відповідь від API', [
'status' => $response->getStatusCode()
]);
echo "Перевірте файл app.log для деталей!";Code language: HTML, XML (xml)Крок 5: Запускаємо
php index.phpCode language: CSS (css)Тепер у папці проєкту з’явиться файл app.log з логами, а у терміналі ви побачите підтвердження виконання скрипту. Ось так просто працює Composer — ви підключаєте бібліотеки і одразу використовуєте їх без зайвого налаштування.
Коли ви тільки починаєте працювати з Composer, легко припуститися кількох типових помилок. Ось найпоширеніші з них.
Папка vendor/ містить усі встановлені залежності і може бути дуже великою. Її не потрібно додавати до репозиторію — натомість у .gitignore завжди має бути рядок /vendor/. Інші розробники можуть просто виконати composer install, щоб отримати всі залежності.
Якщо ви додали нову залежність або оновили існуючу, обов’язково комітьте оновлений composer.lock. Без цього інші члени команди отримають інші версії пакетів.
На продакшн-серверах завжди використовуйте composer install, а не update. Команда update може встановити нові версії пакетів, які не були протестовані, і зламати додаток. Install працює з composer.lock і гарантує стабільність.
composer install --no-dev, щоб не встановлювати пакети для розробки (тести, дебаг-інструменти).composer audit перевіряє, чи немає відомих вразливостей у встановлених пакетах.composer clear-cache, це часто допомагає.Якщо ви працюєте з Laravel, Symfony або іншими сучасними PHP-фреймворками, то Composer вже інтегрований у них. Наприклад, Laravel використовує Composer для встановлення самого фреймворку та всіх його компонентів.
Створити новий Laravel-проєкт можна за допомогою Composer:
composer create-project laravel/laravel my-laravel-appЦя команда завантажить Laravel та всі його залежності, налаштує структуру проєкту і згенерує необхідні конфігураційні файли. Після цього ви можете одразу почати розробку. Більше про налаштування Laravel на різних платформах можна дізнатися з цього гайду.
Хоча Composer є стандартом де-факто для PHP, варто знати, що існують і інші інструменти. Наприклад, PEAR (PHP Extension and Application Repository) — старіший менеджер пакетів, який зараз практично не використовується через складність та відсутність гнучкості порівняно з Composer.
У світі JavaScript аналогом Composer є npm або yarn, у Python — pip. Кожен з цих інструментів має свої особливості, але базові принципи схожі: керування залежностями, версіонування та автоматизація встановлення.
Composer — це не просто інструмент, це ключ до сучасної PHP-розробки. Без нього ви обмежуєте себе у виборі бібліотек, ускладнюєте командну роботу та витрачаєте час на рутинні операції. Освоївши базові команди та принципи роботи, ви зможете швидше створювати якісні додатки, використовувати перевірені рішення спільноти та підтримувати код у актуальному стані.
Почніть з простих проєктів, експериментуйте з різними пакетами на Packagist, читайте документацію обраних бібліотек. З часом робота з Composer стане для вас такою ж природною, як написання PHP-коду. І пам’ятайте: кожен досвідчений розробник колись був початківцем, який вперше запускав composer install.