Composer
www.cetera.ru
Менеджер зависимостей
Composer позволяет установить зависимости вашего проекта от других библиотек, и подгрузить их из удаленных источников по установленным правилам. Эти библиотеки в свою очередь тоже могут иметь зависимости, которые будут подгружены в ваш проект автоматически.
Возможности
Composer позволяет скачивать и обновлять библиотеки из своего официального репозитория packagist.org, с GitHub или Bitbucket, из любых репозиториев Git, Mercurial или SVN, из PEAR, а так же просто просто ZIP-архивы по произвольной ссылке.
После установки пакетов создается php-файл с правилами автозагрузки библиотек в ваш проект.
Правила автозагрузки можно дополнять своими, что позволяет автоматически подгружать в проект любые локальные файлы.
Как используется у нас
- Подгружаем все внешние библиотеки
- Не храним их в своем Git
- Все свои наработки, расширяющие функциональность CMS, автоматически подгружаем в проект с помощью Composer
{
"repositories": [ //описываем нестандартный источник
{
"type": "package",
"package": {
"name": "PHPOffice/PHPExcel",
"version": "1.8.0",
"source": {
"url": "https://github.com/PHPOffice/PHPExcel.git",
"type": "git",
"reference": "1.8.0"
},
"autoload": { "psr-0": { "PHPExcel": "Classes/" } }
}
}
],
"require": { //подключаем внешние библиотеки
"PHPOffice/PHPExcel": "1.8.*",
"pimple/pimple": "~3.0"
},
"autoload": { //автозагрузка локальных файлов
"psr-0": {
"CUserTypeBool": "lib/",
"Cetera\\": "lib/"
},
"psr-4": {
"MyProjectNameSpace\\": "app/"
},
"files": ["app/common.php"]
}
}
Composer require
Ищем необходимую библиотеку на сайте https://packagist.org/ и подключаем ее в узел require с тем именем, что там написано.
Если библиотека не нашлась, то описываем ее в узле repositories, а дальше подключаем стандартным образом в require.
Например, Pimple:
Версии библиотек
Необходимо быть аккуратным с указанием версий подключаемых библиотек. Желательно допускать только минорные обновления для сохранения работоспособности всего остального проекта.
Автозагрузка
Установка Composer
- Есть подробная инструкция
- Можно устанавливать глобально и локально
- При локальной установке позаботьтесь, чтобы composer.phar не попал в Git
Установка зависимостей
php composer.phar install
composer install
Выполнить команду в консоли в том месте, где расположен composer.json:
В случае глобальной установки:
php composer.phar update
Обновление зависимостей:
Структура файлов
- composer.json
- /app - файлы проекта
- /lib - внутренние наработки Cetera Labs
- /vendor - папка, куда автоматически загрузятся все внешние библиотеки
Использование библиотек
require 'vendor/autoload.php';
В 1С-Битрикс мы это делаем в init.php.
Спасибо
Composer
By Denis Sakharov
Composer
- 425