Подключение Composer пакетов

Плагин для упрощения работы с установленными через Composer пакетами

PackageConnector

Расширение для CMF Cotonti. Обеспечивает интеграцию Cotonti с пакетами установленными в проект черезComposer (менеджер зависимостей для PHP).

#1. Описание

В первую очередь Package Connector позволяет использовать автоматический загрузчик для установленных через Composer компонент. Это позволяет сразу приступить к использованию установленной PHP библиотеки, без головной боли с указанием путей к ней и включением директив require или include.

Кроме автозагрузчика, имеется интерфейс доступа к информации об установленных в проект пакетах. Можно получить информацию о версии, зависимостях (и другую информацию предоставляемую пакетом Composer).

#2. Возможности

  • Поддержка/использование автозагрузчика созданного Composer
  • Получение данных об установленных пакетах (версии, зависимости и прочее)

#3. Требования

Текущая версия 0.2.1 работает в Cotonti Siena v0.9.18. (возможна работа в более ранних версиях, но тесты не проводились)

Для корректной работы плагина требуется, как минимум, наличие в каталоге проекта (базовом каталоге Cotonti) файла настройки composer.json.

Для получения данных об установленных пакетах, необходим файл composer.lock, который создается при установке компонент через Composer:

composer install

или установке конкретного пакета:

composer require "vendor/package"

#3.1. Комментарии

Плагин начнет работу сразу после установки и не требует дополнительной настройки.

#3.2. Устройство

Несмотря на то, что файл класса-расширения может быть с легкостью интегрирован в ядро системы с минимальными доработками для целей текущего тестирования на рабочих проектах класс PackageConnector поставляется в составе Расширения (плагина) «package_connector».

Плагин берет на себя ту небольшую часть кода (см. файл package_connector.input.php), которая отвечает за инициализацию класса, вызов автозагрузчика и кэширование самого объекта.

В системе создается глобальная переменная $cot_packages — экземпляр класса PackageConnector:

$cot_packages = new PackageConnector();

Она же кэшируется для ускорения инициализации:

$cache && $cache->db->store('cot_packages', $cot_packages, 'system');

Для исключения излишних процедур инициализации (что требует загрузки и обработки файлов, пусть и небольших), класс имеет метод проверки состояния исходных файлов stateChanged(). Если файлы изменились, необходимо повторно провести их обработку (setup):

if ($cot_packages->stateChanged()) $cot_packages->setup();

Более подробное описание класса и его методов можно найти в репозитории библиотеки «Package Connector»

#4. Установка

  • Распаковать, скопировать файлы в корень сайта.
  • Установить через панель Администрирования → Расширения (Управление сайтом → Расширения)

Обратите внимание: файл (PackageConnector.php) с классами библиотеки PackageConnector должен быть размещен в системном каталоге system\classes.

#5. Условия распространения (лицензия)

Distributed under BSD license.

#6. Авторство

Андрей Мацовкин

#7. Ссылки


1. Graber  31.08.2016 21:22

Отличный плагин, большое спасибо!

Но почему не добавить в плагин базовый composer.json (да хоть из Валенсии), или это связанно с изменением пути с lib/ на lib/components в system/resources.php?

 

2. Macik  10.09.2016 21:39

Замечание резонное — добавил.

Добавление комментариев доступно только зарегистрированным пользователям