jeyroik / extas-workflow
关于此包的最新版本(5.1.1)没有提供许可信息。
Extas 工作流包
5.1.1
2021-03-17 13:27 UTC
Requires
- jeyroik/extas-errors: 0.*
- jeyroik/extas-fields-conditions: 1.*
- jeyroik/extas-foundation: 5.*
- jeyroik/extas-installer-plugins: 0.*
- jeyroik/extas-repositories: 0.*
- jeyroik/extas-repositories-fields-sample-names: 0.*
- jeyroik/extas-repositories-get: 0.*
- jeyroik/extas-values-repository-items: 1.*
- jeyroik/extas-values-self: 0.*
Requires (Dev)
Suggests
- jeyroik/extas-workflow-dashboard: JSON PRC API for a Workflow
- jeyroik/extas-workflow-dispatchers: Default transition dispatchers
README
Описание
该包提供了一个机制来组织将实体从一个状态转换到另一个状态。
更详细的信息可以在 wiki 中找到。
还实现了用于管理 workflow 的仪表板和用于一起启动所有这些的 docker-compose
- https://github.com/jeyroik/extas-workflow-dashboard - API。
- https://github.com/jeyroik/extas-workflow-dashboard-sapper - UI。
- https://github.com/jeyroik/extas-workflow-docker - Docker-compose。
包安装
# composer require jeyroik/extas-workflow:*
测试
# composer run-script test
术语
在包中使用了以下内容
- 实体
IEntity
- 需要从一种状态转换到另一种状态的对象。 - 状态
IState
- 实体的状态,具有描述和名称。 - 转换
ITransition
- 描述实体从一种状态转换到另一种状态的可能的对象。- 除了从特定状态转换外,还允许从任何状态(
*
)转换。
- 除了从特定状态转换外,还允许从任何状态(
- 模式
ISchema
- 描述实体所有可用转换的对象。 - 转换处理程序
ITransitionDispatcher
- 在特定模式中针对特定转换启动的处理程序。- 目前,这些处理程序用于实现条件、验证器和触发器。
- 条件 - 转换前的检查。
- 验证器 - 转换期间的检查。
- 触发器 - 在转换后启动的函数。
- 工作流程
IWorkflow
- 实现将实体从一种状态转换到另一种状态的转换的对象。
过程简介
当启动将实体从一种状态转换到另一种状态时,会发生以下情况
- 根据模式确定是否可以转换
- 启动该转换的所有条件。
- 启动该转换的所有验证器。
- 如果验证成功,则实体的状态将更改。
- 使用
IEntity
接口管理状态更改。也就是说,所有计划使用此机制的实体都必须实现此接口。
- 使用
- 然后启动该转换的所有触发器。
预安装 workflow 组件
此包为 extas 兼容配置(请参阅 jeyroik/extas-installer
)提供了以下安装程序
- 状态安装程序
{ "workflow_states": [ { "name": "", "title": "", "description": "", "parameters": [ { "name": "" } ] } ] }
- 转换安装程序
{ "workflow_transitions": [ { "name": "", "title": "", "description": "", "state_from": "<state.name>", "state_to": "<state.name>" } ] }
- 转换处理程序模板安装程序
{ "workflow_transition_dispatcher_samples": [ { "name": "", "title": "", "description": "", "class": "", "parameters": [] } ] }
- 模式安装程序
{ "workflow_schemas": [ { "name": "", "title": "", "description": "", "states": ["<state.name>"], "transitions": ["<transition.name>"], "parameters": [] } ] }
- 转换处理程序安装程序
{ "workflow_transition_dispatchers": [ { "type": "trigger|validator", "name": "", "template": "<template.name>", "schema_name": "<schema.name>", "transition_name": "<transition.name>|*", "parameters": [] } ] }