netzmacht/workflow

工作流库

资助包维护!
dmolineus

2.1.1 2020-07-01 12:13 UTC

README

Build Status Version Code quality Code coverage

这是一个框架无关的工作流库。它提供了一种基于步骤转换的工作流实现,用于处理实体的生命周期。

由于其数据格式和框架无关性,它不能作为一个独立的工作流库运行。实体/数据实现以及通过表单的输入处理必须实现。这个工作流库更多的是你工作流需求的框架。

特性

主要概念

  • 实体在其生命周期中处理不同的步骤。
  • 两个步骤之间的过程称为转换。
  • 转换可以依赖于条件,这些条件决定了转换是否可用。
  • 每个转换包含一个执行以到达下一个步骤的操作列表。
  • 操作可能需要额外的用户输入来执行转换。
  • 用户输入由表单处理。

工作流项

  • 项封装实体以提供工作流相关信息。
  • 它知道当前状态和整个状态历史。
  • 由于数据结构的灵活性,使用EntityId来标识实体。

工作流

  • 为特定数据提供者的特定实体定义了工作流。
  • 工作流是多个步骤及其转换的定义。
  • 工作流始终有一个开始转换。
  • 它可以有多个结束转换。

管理器

  • 可以为同一数据提供者定义多个工作流。
  • 管理器选择匹配的工作流并创建转换处理器。
  • 目前,一个项只能在一个工作流中。

权限

  • 转换和步骤可以限制在权限。
  • 检查权限和组织它们是当前实现的一部分。

更多特性

  • 基于集合的存储库。
  • 事务保存转换。
  • 灵活的配置系统,适用于工作流、步骤和转换。

要求

此库需要至少PHP 7.1。

变更日志

请参阅CHANGELOG.md

示例

您可能想看看示例

具体实现作为CMS Contao的集成netzmacht/contao-workflow可用。

致谢

这个库受到了orocrm plattform中伟大的工作流实现的启发,并从LexikWorkflowBundle中获得了一些概念。