Используем Composer для разработки модулей и плагинов Cotonti Siena
Популярные запросы: Open Graph, плагин Reading Time, тема Quebec, плагин Telegram, набор иконок Analogue
- 211 просмотров +1
- 4 декабря, 2025
- Обновлено: 14 декабря, 2025
- admin
- Время чтения: 5 минут
- 1 (Подробно)
Предположим, вы разрабатываете плагин, который использует некую стороннюю библиотеку. Перед вами встает задача ее подключения. Очевидных вариантов два:
- Добавить ее в папку с расширением.
- Использовать пакетный менеджер зависимостей Composer из дистрибутива Cotonti Siena.
Откровенно говоря, ни один из вариантов не имеет сколь-нибудь явных преимуществ или недостатков. Добавление библиотеки в расширение может значительно увеличить его размер, но при этом не потребует дополнительных действий при установке. Использование Composer позволит сохранить компактный размер расширения, однако загрузка библиотеки в системную папку /lib потребует однократно выполнить несложную операцию. Преимущество можно получить в следующих ситуациях:
- библиотеку используют сразу несколько расширений,
- в проекте присутствуют библиотеки, требующие другие библиотеки,
- необходимо централизованно обновлять библиотеки (особенно если их несколько или много).
C другой стороны, навык работы с Composer никогда не будет для вас лишним. К тому же, “дополнительные” действия займут не более 1-2 минут. Так что начнем.
Что такое Composer
Composer представляет собой серверный PHP-инструментарий для управления библиотеками (или т. н. зависимостями). Говоря простыми словами, это менеджер, позволяющий устанавливать, обновлять и удалять библиотеки для расширений вашего сайта.
Начиная с версии 0.9.23 Cotonti Siena имеет на борту поддержку менеджера Composer, обеспечивающую стандартное управление библиотеками.
Composer работает на основе принципа “один сайт на Cotonti – один менеджер – один набор зависимостей”. Это означает, что установленные им библиотеки будут доступны только для конкретного сайта.
Как добавить библиотеку на сайт под CMS Cotonti через Composer
Лучший способ объяснить простую вещь – это использовать пример. Так и поступим.
Для оптимизации разработки и тестирования сайтов у меня появилась задача подключить и использовать библиотеку Faker, с помощью которой можно создавать страницы и пользовательские аккаунты в “товарных” количествах. Первый вариант плагина включал в себя "встроенную" библиотеку и работал без особых нареканий. Однако в определенный момент появился вопрос о том, насколько актуальной является версия библиотеки. Он и трансформировался в задачу по использованию менеджера Composer “на борту” CMS Cotonti.
Первым делом авторизуемся на удаленном сервере и проверим наличие Composer. Это можно сделать командой
composer -V
Она выводит номер версии и дату сборки. Примерно так:
Composer version 2.6.4 2023-09-29 10:54:46
Теперь займемся установкой библиотеки Faker. Это можно сделать двумя способами.
Первый способ – с помощью команды require. В нашем примере:
composer require fakerphp/faker
Вы спросите как я узнал параметр с именем библиотеки? Все просто: их можно найти на специализированном ресурсе packagist.org или на сайте поддержки библиотеки:
После успешного выполнения команды будут обновлены файлы composer.json и composer.lock в корневом разделе сайта, а сама библиотека будет загружена в папку /lib/vendor.
Иногда (в основном из-за рассогласования версий) требуется ручная установка. Для этого откроем файл composer.json и в раздел require добавим необходимую строку:
"fakerphp/faker": "^1.20"
Теперь обновим наше хранилище:
composer update
Результат выполнения данной команды будет аналогичен composer require:
Что делать если параллельно с Composer вы используете Git?
Если вы работаете с сайтом по FTP, данное миниописание можно пропустиить. Для остальных поясним: поскольку установка библиотеки производилась на удаленном сервере, необходимо синхронизировать изменения с текущим репозиторием. Для этого в терминале выполним команду:
git add . && git commit -m 'add composer updates' && git push
После этого выгрузим изменения в локальный репозиторий:
git pull
Это необходимо делать каждый раз при добавлении, обновлении и удалении библиотек.
Подключаем библиотеку из Composer-хранилища
Здесь вам на помощь придет документация разработчика библиотеки. В нашем случае подключение довольно простое:
require_once 'vendor/autoload.php';
… или
require_once 'lib/vendor/fakerphp/faker/src/autoload.php';
Как видим, все просто. Аналогичным образом можно установить, например, фреймворк Bootstrap или библиотеку иконок FontAwesome или другие полезные библиотеки:
composer require twbs/bootstrap:5.3.8 composer require fortawesome/font-awesome
Для просмотра установленных библиотек используем:
composer show
Удалить пакеты можно командой remove:
composer remove twbs/bootstrap:5.3.8 composer remove fortawesome/font-awesome
Composer позаботится о том, чтобы:
- удалить указанный пакет из файла
composer.json, - физически удалить пакт из папки
/lib, - обновить
composer.lockи автозагрузчик, - удалить все зависимости, наличие которых больше не требуется.
Если удалять зависимости не требуется, используем опцию --no-update:
composer remove twbs/bootstrap:5.3.8 --no-update
Для ручной деинсталляции удалим соответствующую строку из блока require файла composer.json и запустим команду
composer update
Если необходимо удалить только один из исключенных пакетов, укажем его явно:
composer update twbs/bootstrap:5.3.8
Заключение
В данной публикации мы рассмотрели алгоритм подключения сторонней библиотеки на сайт под управлением CMS Cotonti Siena. Он рабочий, но далеко не единственный, и зависит от настроек вашего рабочего окружения. Если у вас появились вопросы, задавайте их в комментариях или на наших форумах. Постараемся помочь.
Happy coding!
В прошлый раз бы занимались кастомизацией плагина Whosonline из дистрибутива Cotonti Siena.
Предлагаю продолжить обсуждение Composer на форуме
Что посоветуете? Не совсем понимаю смысл использования Composer.
Composer действительно очень удобен для быстрого развертывания проекта и прототипирования. А в библиотеках стоит покопаться - есть много интересного и полезного для webdev.
Новый комментарий
Ошибка
Выполнено