jeyroik / extas-installer
此包的最新版本(3.6.2)没有提供许可证信息。
Extas 安装包
3.6.2
2020-09-30 11:54 UTC
Requires
Requires (Dev)
This package is auto-updated.
Last update: 2024-09-20 11:29:54 UTC
README
描述
本包允许安装与 Extas 兼容的实体。
要求
- PHP 7.4+
- MongoDB 3+
安装
安装包
# composer require jeyroik/extas-installer:*
初始化 Extas
# vendor/bin/extas init
该命令将创建默认的类容器并安装根插件和扩展。
初始化有以下阶段(所有阶段都有相应的接口)
extas.init:在此阶段可以进行初始化包的附加操作。extas.init.section:在此阶段可以进行初始化部分的附加操作。extas.init.item:在此阶段可以进行初始化特定元素的附加操作。
执行此操作后,将安装所有必需的插件和扩展。如果需要插件/扩展由该命令安装,则必须在插件/扩展的配置中添加
install_on: initialization- 示例
{
"plugins": [
{
"class": "my\\Plugin",
"stage": "my.stage",
"install_on": "initialization"
}
]
}
安装实体
# vednor/bin/extas install -a my_app(简写形式:extas i -a my_app)
安装包括两个步骤
- 收集包配置。
- 安装找到的包。
可以通过插件在任何步骤中连接(对于所有阶段都有相应的接口),阶段按顺序列出
extas.crawl.packages:收集配置后触发。extas.install.<application.name>:从安装命令的-a选项中获取<application.name>。extas.install:在此阶段可以连接自己的安装器以实现特定的安装逻辑。extas.install.package.<package.name>:从包配置中获取<package.name>。在此阶段可以进行安装包的附加操作。extas.install.package:类似于上一个阶段。extas.install.section.<section.name>:<section.name>是配置中的部分名称。在此阶段可以进行安装部分的附加操作。extas.install.section:类似于上一个阶段。extas.install.section.<section.name>.item:在此阶段可以进行安装特定实体元素的附加操作。extas.install.item:类似于上一个阶段。
删除实体
# vendor/bin/extas uninstall(简写形式extas u)
删除也提供了阶段
extas.uninstall.<application.name>extas.uninstall.package.<package.name>extas.uninstall.packageextas.uninstall.section.<section.name>extas.uninstall.sectionextas.uninstall.item.<section.name>extas.uninstall.item
创建和安装自定义实体
- 创建实体类。
namespace my\extas; use extas\components\Item; class My extends Item { protected function getSubjectForExtension(): string { return 'my'; } }
- 为实体创建存储库。
Extas 默认支持 MongoDB。
namespace my\extas; use extas\components\repositories\Repository; class MyRepository extends Repository { protected string $pk = 'name'; protected string $itemClass = My::class; protected string $scope = 'my'; protected string $name = 'names'; }
使用此存储库,将创建名为 my__names 的集合。
- 在配置中为我们的实体想一个部分名称。
让我们叫它 my_names。
- 创建安装我们实体的插件。
namespace my\extas; use extas\components\plugins\install\InstallSection; class PluginInstallMyNames extends InstallSection { protected string $selfSection = 'my_names'; protected string $selfName = 'my name'; protected string $selfRepositoryClass = 'myRepository'; protected string $selfUID = 'name'; protected string $selfItemClass = My::class; }
- 将插件和存储库接口添加到 Extas 的配置中。
默认情况下,配置位于根目录中的 extas.json 文件。您可以使用任何名称 - 在这种情况下,不要忘记在安装时使用 -p 标志指定它(见下文)。
example.json
{
"name": "example",
"plugins": [
{"class": "my\\extas\\PluginInstallMyNames", "stage": "extas.install.section.my_names"}
],
"my_names": [
{"name": "Example 1"},
{"name": "Example 2"}
],
"package_classes": [
{"interface": "myRepository", "class": "my\\extas\\MyRepository"}
]
}
- 安装插件。
# vendor/bin/extas i