raoul2000/yii-simple-workflow

为 Yii 1 的简单工作流引擎

1.0.9 2015-05-21 17:33 UTC

This package is not auto-updated.

Last update: 2024-09-18 07:47:13 UTC


README

simpleWorkflow

simpleWorkflow 扩展是一组 Yii 组件,旨在为在流程中管理 CActiveRecord 对象的生命周期提供简单的方法。它提供控制活动记录在相关流程中行为的特性:转换任务、状态约束、事件模型。

注意,遵循 Yii 1.1 生命周期的 simpleWorklfow 扩展也已达到生命周期终点。请考虑使用与 Yii 2.x 兼容的 yii2-workflow 扩展。

资源

文档

要求

  • Yii 1.1.4 或更高版本

安装

  • protected/extensions 下提取发布文件。
  • 将 SWPhpWorkflowSource 组件添加到您的配置中
'components'=>array(	
	// adding the simple Workflow source component
	'swSource'=> array(
		'class'=>'application.extensions.simpleWorkflow.SWPhpWorkflowSource',
	), ...
  • 将 simpleWorkflow 扩展基本文件夹添加到您的导入中
'import'=>array(
	...
	'application.extensions.simpleWorkflow.*',	// Import simpleWorkflow extension
), 

使用

一旦安装并正确配置,simpleWorkflow 扩展将处理任何模型的工作流。为了为特定模型启用 simpleWorkflow,您必须将 SWActiveRecordBehavior 行为附加到该模型。

class MyModel extends CActiveRecord {
	public function behaviors()
	{
		return array(
			'swBehavior' => array(
				'class' => 'application.extensions.simpleWorkflow.SWActiveRecordBehavior'
			)
		);
	}
}

然后,该模型可以插入到工作流中,并在该工作流内部的状态之间演变。例如,下面的代码将现有记录插入到工作流中,或者如果已经完成,则显示其当前状态

$m=MyModel::model()->findByPk('1');
if( $m->swHasStatus() ){
     echo 'status : '.$m->swGetStatus()->toString();		
}else {
     $m->swInsertToWorkflow();
     $m->save();
}

有关如何使用 simpleWorkflow 扩展的更多信息,请参阅 完整文档

Gii 命令

当需要多个节点和边时,手动创建工作流可能容易出错。一个好的选择是使用 可视化工具 创建工作流,经过一番搜索,似乎最好的应用程序之一是 yEd Graph Editor。当然,它是免费的!

想了解更多吗?阅读如何使用 GII 命令创建工作流...