jeyroik/extas-installer-import

此包最新版本(0.1.1)的许可证信息不可用。

允许导出/导入定义的extas兼容实体

0.1.1 2020-10-02 14:50 UTC

This package is auto-updated.

Last update: 2024-09-29 05:49:34 UTC


README

tests codecov.io Latest Stable Version Total Downloads Dependents

描述

该包允许从extas兼容包中仅导入所需实体。

注意:捐赠包必须支持导出(详细信息见下文)。

导出配置

如果包希望按需组织安装某些实体,则需要描述导出部分。

extas.json

{
  "name": "my/package",
  "export": {
    
  }
}

导出内容与extas.json的内容相同,例如,如果包中假定需要安装的插件和可按需安装的插件,则描述将大致如下

extas.json

{
  "name": "my/package",
  "plugins": [
    {
      "class": "plugin/First",
      "stage": "some.stage"
    }
  ],
  "export": {
    "plugins": [
      {
        "class": "plugin/Second",
        "stage": "any.stage",
        "install_on": "install"
      }
    ]
  }
}

注意:对于插件和扩展,需要考虑导入机制是在安装阶段连接的(即初始化之后)。因此,对于导出的插件和扩展,必须明确指定安装阶段(install_on: install)。

导入配置

extas.json

{
  "name": "my/package2",
  "import": {
    "from": {
      "my/package": {
        "plugins": "plugin/Second"
      }
    },
    "parameters": {
      "on_miss_package": {
        "name": "on_miss_package",
        "value": "continue"
      },
      "on_miss_section": {
        "name": "on_miss_section",
        "value": "throw"
      }
    }
  }
}
  • 本节中的from指定了需要从中进行导入的包。
  • parameters参数定义了在找不到导入包或请求的包内的部分时行为。可能的值:continue - 简单地转到下一个包/下一个部分,throw - 抛出错误,整个导入中断。

包提供了两个阶段(它们按以下顺序启动)

  • extas.package.export.build.<section.name> - 例如,extas.package.export.build.plugins用于插件。
  • extas.package.export.build

阶段接口相同,可以在src/interfaces/stages/IStagePackageExportBuild中找到。

这些阶段用于解释from部分中的部分值。因此,可以组织自己的格式。

内置导入描述格式

内置机制通过字段搜索实体 - extas\components\plugins\export\PluginExportByField

该机制允许在插件参数中指定字段并按该字段过滤实体

{
  "name": "my/package2",
  "import": {
    "from": {
      "my/package": {
        "plugins": "plugin/Second"
      }
    }
  }
}

内置插件处理pluginsextensions部分。根据上述示例,将从my/package包中导入只有类plugin/Second的插件。

还可以指定多个实体

{
  "name": "my/package2",
  "import": {
    "from": {
      "my/package": {
        "plugins": ["plugin/Second", "plugin/Third"]
      }
    }
  }
}

有关指定字段的插件描述示例,请参阅该包的extas.json