jeyroik / extas-installer-plugins
Allows to describe installer plugins inside extas.json
Requires
Requires (Dev)
- jeyroik/extas-repositories-mongo: 1.*
- jeyroik/extas-snuffbox: 0.*
- phpstan/phpstan: 0.*
- phpunit/phpunit: ^9
- vlucas/phpdotenv: ^3.4
This package is auto-updated.
Last update: 2024-10-28 00:37:10 UTC
README
Описание
Пакет предоставляет механизм описания плагинов для установки/удаления сущностей, что позволяет избежать лишнего кода.
Использование
Раньше, если требовалось реализовать поддержку установки и удаления сущности, требовалось реализовать два плагина - для стадии установки и для стадии удаления.
Теперь достаточно описать сущность:
extas.json
{ "plugins_install": [ { "repository": "extas\\components\\my\\Repository", "name": "my entity", "section": "my_entities" } ] }
Это создаст два плагина для установки сущностей из секции my_entities
.
Комбинируя данный пакет с extas-repositories
можно получить следующий результат:
{ "repositories": [ { "name": "my_repo", "scope": "extas", "pk": "name", "class": "extas\\components\\my\\Item", "aliases": ["myRepo"] } ], "plugins_install": [ { "repository": "myRepo", "name": "my entity", "section": "my_entities" } ] }
Кроме того, если имя сущности совпадает с именем секции, то секцию можно опустить:
{ "plugins_install": [ { "repository": "myRepo", "name": "entities", } ] }
Вместе со всем этим, для дополнительного контроля и гибкости, существует стадия extas.plugin.install.construct
, которая позволяет подключиться к стадии формирования плагина и собрать его по логике необходимой вам. Детали стадии см. в src/interfaces/stages/IStagePluginInstallConstruct
.