Composer – частина 1. Встановлення та принцип роботи Composer

Composer – менеджер залежностей для PHP. Він дозволяє визначити бібліотеки для вашого проекту і адмініструвати їх.

Встановлення composer на Centos 8

$ sudo dnf -y install wget
$ sudo wget https://getcomposer.org/installer -O composer-installer.php
$ sudo php composer-installer.php --install-dir=/usr/local/bin --filename=composer
All settings correct for using Composer
Downloading...
Composer (version 1.9.3) successfully installed to: /usr/local/bin/composer
Use it: php /usr/local/bin/composer

Доступні параметри інсталятора:
install-dir – папка для інсталяції пакету
filename – ім’я файлу (по замовчуванню: composer.phar)
version – вказати версію для інсталяції

$ composer -V
Composer version 1.9.3 2020-02-04 12:58:49

У випадку помилки для sudo

$ sudo composer
sudo: composer: command not found
$ sudo -s
# echo $PATH
/sbin:/bin:/usr/sbin:/usr/bin
# nano /etc/sudoers
Defaults    secure_path = /sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin
# composer -V
Do not run Composer as root/super user! See https://getcomposer.org/root for details
Composer version 1.9.3 2020-02-04 12:58:49

Підключення Composer до проекту в ручному режимі

В корені проекту створимо файл конфігурації:

$ touch composer.json
$ nano composer.json
{
    "require": {
        "monolog/monolog": "1.0.*"
    }
}
$ composer install
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing monolog/monolog (1.0.2): Downloading (100%)         
Writing lock file
Generating autoload files

В результаті буде створено composer.lock в корені нашого проекту на папку vendor з наступним вмістом:
autoload.php
composer (папка)
monolog (папка)

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

Для оновлення всіх пакетів до нових версій необхідно скористатися командою (або для оновлення конкретного пакету):

$ composer update
$ composer update monolog/monolog

Packagist (packagist.org) – головний репозиторій Composer.

Підключення автозавантаження Composer. Внесіть зміни у свій файл, наприклад, public/index.php:

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

	$log = new Monolog\Logger('name');
	$log->pushHandler(new Monolog\Handler\StreamHandler(__DIR__.'/app.log', Monolog\Logger::WARNING));
	$log->addWarning('Foo');
?>

Версії пакетів Composer

Tags (^0.3.0)

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

Branches (dev-master)

Якщо ви хочете отримати версію з гілки, ви маєте використати префікс dev-*

Minimum Stability

Також на вибір версії бібліотеки для інсталяції composer впливає параметр minimum-stability в composer.json. По замовчуванню stable, також може бути dev, alpha, beta, RC.

Правила написання вимог до пакетів

  • 1.0.2 – точне визначення необхідної версії
  • =1.0 <1.1 || >=1.2 – поєднання умов версій
  • 1.0 – 2.0 – межі версії, еквівалент >=1.0.0 <2.1
  • 1.0.* – всі підверсії, еквівалент >=1.0 <1.1
  • ~1.2 – еквівалент >=1.2 <2.0.0
  • ~1.2.3 – еквівалент >=1.2.3 <1.3.0
  • ^1.3 – еквівалент >=1.3 <2.0 (РЕКОМЕНДОВАНО)
  • ^1.2.3 – еквівалент >=1.2.3 <2.0.0 (РЕКОМЕНДОВАНО)

Залишити відповідь

Ваша e-mail адреса не оприлюднюватиметься. Обов’язкові поля позначені *