Для тих, хто не спить!
Знижка -15%
Ми використовуємо cookie-файли
Для оптимізації роботи нашого сайту ми використовуємо cookie-файли. Продовжуючи використовувати сайт, Ви погоджуєтеся з використанням cookie-файлів.
Новий дизайн
Панель керування
  • Русский
  • Українська
  • English
  • UAH
  • USD
  • RUB
  • EUR
  • 0-800-307-307 Гаряча лінія
  • +38 (044) 392-74-33 Київ
  • +38 (057) 728-39-00 Харків
  • +38 (056) 794-38-31 Дніпро
  • +38 (032) 229-58-93 Львів
  • +38 (048) 738-57-70 Одеса
  • +38(093) 170-15-42  Life
  • +38 (067) 400-88-44 Київстар
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7 (499) 348-28-61 Москва

2.8.3.2. Робота з Composer

Примітка

Composer встановлений на всіх серверах хостингу за замовчуванням. При необхідності його можна встановлювати вручну.

Composer - пакетний менеджер для PHP. Він дозволяє завантажувати / оновлювати з офіційного репозиторію packagist.org використовувані проектом бібліотеки і їх залежності. За рахунок цього кожну з них не потрібно завантажувати і підключати вручну, а також немає необхідності зберігати їх безпосередньо в самому проекті, що скорочує його розміри.

Детальна інформація по роботі з Composer представлена в офіційної документації.

Запуск Composer виконується наступним чином:

composer

Якщо версія PHP, яка використовується для запуску Composer, відрізняється від версії, що відображається при його роботі, виконайте команду:

export PATH=/usr/local/php73/bin:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin

Замість php73 вкажіть потрібну версію PHP.

  • install - установка пакетів, перерахованих в composer.json. Пакети встановлюються в той каталог, з якого була виконана команда.
  • update - оновлення всіх пакетів (якщо будь-які пакети були випадково видалені, вони будуть автоматично встановлені).
  • update package/name - оновлення конкретного пакета.
  • dumpautoload - пересозданіе Автозавантажувач.
  • require somepackage/somepackage:someversion - додавання нового пакета (за замовчуванням пакети ставляться з офіційного репозиторію). При установці пакет прописується в composer.json.
  • update –lock - оновлення файлу блокування composer.lock.
  • –profile - додавання цього параметра до будь-якій команді включить показ часу виконання та обсягу використаної пам'яті.
  • –verbose - детальна інформація про виконувану операцію.
  • show - список встановлених пакетів з описом кожного.
  • show –platform - відомості про PHP.
  • –dry-run - репетиція виконання команди. Може додаватися до командам install і update. Емулює виконання команди без її безпосереднього виконання. Необхідний для того, щоб перевірити, чи пройде установка пакетів і залежностей успішно.
  • remove - видалення пакета. точна протилежність require.

composer.json - це ключовий файл для роботи Composer. Він містить список бібліотек і їх версій, необхідних для роботи проекту.

Кожен з пакетів також має власний composer.json, В якому перераховуються всі його залежності. Цей файл формується розробником пакета. Схема файлу доступна на офіційному сайті.

У файлі composer.lock зберігається поточний список встановлених залежностей і їх версій. Необхідний для того, щоб у віх, хто клонує проект, було ідентичне пакетне оточення (були встановлені той же набір бібліотек з тими ж версіями).

При виконанні install Composer в першу чергу спирається на вміст composer.lock. При кожному виконанні update версії оновлених пакетів прописуються в composer.lock.

composer.lock містить хеш файлу composer.json. Якщо json-файл був відредагований, Composer видасть попередження про невідповідність lock-файлу з json-файлом. В цьому випадку потрібно буде оновити composer.lock командою update –lock.

Установка виконується командою:

composer install

В результаті Composer:

  1. Перевірить наявність composer.lock:
    1. Якщо він існує, візьме з нього назви потрібних пакетів і їх версії.
    2. Якщо його немає, вважає вміст файлу composer.json і візьме з нього назви потрібних пакетів і їх версії.
  2. Завантажить / встановить пакети потрібних версій в каталог vendor.
  3. Автоматично сформує файл autoload.php.
  4. Якщо файлу composer.lock не було, створить його.

Щоб проект міг звертатися до встановлених бібліотекам, досить підключити autoload.php:

require_once '../vendor/autoload.php';

Оновлення виконується командою:

composer update

В результаті Composer:

  1. Перевірить вміст composer.json.
  2. Визначить останні версії на основі даних з цього файлу.
  3. Встановить останні версії пакетів.
  4. Оновить composer.lock відповідно до встановлених пакетами.

Для визначення необхідного пакету використовується команда require, Яка вбудовується в файл composer.json, Або ж використовується команда в консолі:

composer require постачальник/пакет версія

Вказівка залежностей в файлі composer.json проводиться таким чином:

"require": {
    "Постачальник / пакет1": "версія", "постачальник / пакет2": "версія", "постачальник / пакет3": "версія"
}
  • постачальник (Vendor) - постачальник бібліотеки, яка буде встановлена.
  • пакет - ім'я пакета, що надається постачальником.
  • версія - версія запитуваної бібліотеки. Якщо не вказувати, то буде встановлена остання версія пакету. Для роботи з версіями використовуються цифрові (1.2.1, 3.5.1) Або ж текстові позначення (dev-master, master). Також можна використовувати неточні позначення за допомогою стандарту, описаного в SemVer.

Наприклад, для установки пакета monolog потрібно виконати команду:

composer require "monolog/monolog"

Або вказати в файлі composer.json рядки:

{
    "require": {
        "monolog/monolog": "*"
    }
}

Після чого виконати в консолі:

composer update

Для видалення пакетів потрібно видалити з файлу composer.json рядки зі згадуванням. Наприклад, для Monolog потрібно видалити:

 "monolog/monolog": "*"

Після чого потрібно в консолі виконати команду:

composer update

Або ж можна виконати в консолі команду:

composer remove monolog/monolog

Якщо Composer повідомляє, що пакет вимагає версії PHP не нижче тієї, що вказана в тексті помилки, встановіть цю версію, перевизначивши змінну PATH по інструкції, Після чого повторіть команду Composer, при якій виникла помилка.

Якщо при виконанні будь-якої команди composer виникає помилка «Fatal error: Allowed memory size of XXX bytes exhausted», Спробуйте запустити її в такий спосіб:

php -d memory_limit=-1 /usr/local/bin/composer команда