netzmacht / workflow
工作流库
2.1.1
2020-07-01 12:13 UTC
Requires
- php: >=7.1
- beberlei/assert: ^2.0 || ^3.0
Requires (Dev)
- phpcq/all-tasks: ^1.2
- phpspec/phpspec: ~5.0 || ~6.0
This package is auto-updated.
Last update: 2024-08-29 03:58:04 UTC
README
这是一个框架无关的工作流库。它提供了一种基于步骤转换的工作流实现,用于处理实体的生命周期。
由于其数据格式和框架无关性,它不能作为一个独立的工作流库运行。实体/数据实现以及通过表单的输入处理必须实现。这个工作流库更多的是你工作流需求的框架。
特性
主要概念
- 实体在其生命周期中处理不同的步骤。
- 两个步骤之间的过程称为转换。
- 转换可以依赖于条件,这些条件决定了转换是否可用。
- 每个转换包含一个执行以到达下一个步骤的操作列表。
- 操作可能需要额外的用户输入来执行转换。
- 用户输入由表单处理。
工作流项
- 项封装实体以提供工作流相关信息。
- 它知道当前状态和整个状态历史。
- 由于数据结构的灵活性,使用EntityId来标识实体。
工作流
- 为特定数据提供者的特定实体定义了工作流。
- 工作流是多个步骤及其转换的定义。
- 工作流始终有一个开始转换。
- 它可以有多个结束转换。
管理器
- 可以为同一数据提供者定义多个工作流。
- 管理器选择匹配的工作流并创建转换处理器。
- 目前,一个项只能在一个工作流中。
权限
- 转换和步骤可以限制在权限。
- 检查权限和组织它们是当前实现的一部分。
更多特性
- 基于集合的存储库。
- 事务保存转换。
- 灵活的配置系统,适用于工作流、步骤和转换。
要求
此库需要至少PHP 7.1。
变更日志
请参阅CHANGELOG.md
示例
您可能想看看示例。
具体实现作为CMS Contao的集成netzmacht/contao-workflow可用。
致谢
这个库受到了orocrm plattform中伟大的工作流实现的启发,并从LexikWorkflowBundle中获得了一些概念。