jeyroik/extas-installer-plugins

There is no license information available for the latest version (0.3.1) of this package.

Allows to describe installer plugins inside extas.json

0.3.1 2020-08-27 15:11 UTC

This package is auto-updated.

Last update: 2024-10-28 00:37:10 UTC


README

tests codecov.io Latest Stable Version Total Downloads Dependents

Описание

Пакет предоставляет механизм описания плагинов для установки/удаления сущностей, что позволяет избежать лишнего кода.

Использование

Раньше, если требовалось реализовать поддержку установки и удаления сущности, требовалось реализовать два плагина - для стадии установки и для стадии удаления.

Теперь достаточно описать сущность:

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.