最近一个项目需要实现工作流。我的想法是使用一些工作流引擎,但php平台上的工作流引擎很少,没什么成熟的案例。cto也要我们自己实现。但现在我是眼前一抹黑,完全不知道怎么实现。能否请大家说说一个基本的工作流需要怎么实现?
解决方法:
随便写的,仅供参考
<?php
class process{
const STATE_1 = 1;
const STATE_2 = 2;
const STATE_3 = 3;
const STATE_4 = 4;
const STATE_5 = 5;
const STATE_ALL = 99;
private $state = null;
private $statesLog = [];
public function setState($state)
{
if (!$this->checkRoute($state)) {
return false;
}
$this->state = $state;
return true;
}
protected function routes()
{
return [
static::STATE_1=>[
'id' =>static::STATE_1,
'name' =>'状态1',
'desc' =>'状态1的描述',
'to' =>[static::STATE_3, static::STATE_4],
'actions' =>[Actions::AC1, Actions::AC3],
'hooks' =>[...],
]
...
];
}
}
class Actions{
const AC1 = 1;
const AC2 = 2;
const AC3 = 3;
public static function actions()
{
return [
static::AC1 =>[
'id' =>static::AC1,
'name' =>'AC1',
'action'=>[
'do' =>['nameSpace', 'className', 'methodName'],
'route' =>'/tools/sms/push',
'attr' =>['class'=>'hight_light warning'],
],
]
...
];
}
public static function getAction($actionId)
{
$actions = static::actions();
return $actions[$actionId] ?? null;
}
}可以看看php协程实现多任务协作,Generator,看看对你是否有帮助
相关文章:
本文档主要讲述的是Matlab语言的特点;Matlab具有用法简单、灵活、程式结构性强、延展性好等优点,已经逐渐成为科技计算、视图交互系统和程序中的首选语言工具。特别是它在线性代数、数理统计、自动控制、数字信号处理、动态系统仿真等方面表现突出,已经成为科研工作人员和工程技术人员进行科学研究和生产实践的有利武器。希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
8
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号