softius/phlow

一个无框架的PHP库,用于构建和执行工作流

v0.4.0 2018-07-24 06:20 UTC

This package is auto-updated.

Last update: 2024-09-14 04:59:22 UTC


README

Latest Version on Packagist Software License Build Status Code Climate Code Climate

Phlow是PHP的工作流建模器和引擎,深受BPMN 2.0Apache Camel的启发。Phlow旨在为PHP项目提供库以设计和实现业务流程。它利用工作流的概念来模拟任何类型的过程,通过这个过程,一项工作从启动到完成。

可以使用PHP创建Phlow流程模型。不需要第三方工具来模拟和/或执行流程。

Phlow是一个无框架的解决方案。

功能

✅ 顺序流
✅ 条件流
✅ 错误处理
✅ 回调
✅ 条件布尔表达式
✅ PSR/3日志集成
✅ 执行路径回放
✅ 纯文本格式的流程模型
✅ 纯文本格式的执行路径

有关即将发布版本的更多信息,请参阅路线图

入门

以下图像展示了一个简单的处理非工作灯泡的过程。一旦发现非工作灯泡,流程将评估灯泡是否已插入。如果没有,它将评估灯泡是否已烧坏。在任何情况下,都必须采取特定操作,即更换灯泡。

A simple flowchart for troubleshooting a broken lamp.

此外,以下代码展示了相同过程的模型。

$builder = new WorkflowBuilder();
$builder
  ->start()
  ->choice()
  ->when('isPluggedIn')
    ->callback()          // Plug in lamp
  ->when('isBurnedOut')
    ->callback()          // Replace lamp
  ->otherwise()
    ->callback()          // Repair lamp
  ->endAll()

一旦构建了模型,就可以通过创建一个新实例来执行它。此时,可以传递一些可能在流程中提供的数据。数据可以是任何对象,也可以在流程中作为部分更新。

$workflow = $builder->getWorkflow();
$instance = new WorkflowInstance($workflow, $data);
$instance->execute();

安装

可以通过执行以下composer命令将Phlow安装到您的PHP项目中。请注意,目前还没有稳定的版本。

$ composer require softius/phlow 0.4.0

文档

测试

$ composer test

安全

如果您发现任何与安全相关的问题,请通过电子邮件softius@gmail.com联系,而不是使用问题跟踪器。

鸣谢

许可证

MIT许可证(MIT)。请参阅许可证文件以获取更多信息。