raoul2000 / yii-simple-workflow
A simple workflow engine for Yii 1
Installs: 8 194
Dependents: 0
Suggesters: 0
Security: 0
Stars: 27
Watchers: 5
Forks: 16
Open Issues: 2
Language:HTML
Requires
- php: >=5.1.0
Requires (Dev)
- yiisoft/yii: 1.1.16
This package is not auto-updated.
Last update: 2024-11-13 08:34:40 UTC
README
The simpleWorkflow extension is a set of Yii components that is dedicated to provide an easy way to manage the life cycle of CActiveRecord objects inside a workflow. It provides features to control the behavior of the active record in its associated workflow : transition tasks, status constraints, event model.
Note that the simpleWorklfow extension, following Yii 1.1 life cycle, has also reached end of life. Please consider using yii2-workflow extension with Yii 2.x
Resources
Documentation
Requirements
- Yii 1.1.4 or above
Installation
- Extract the released files under
protected/extensions
. - add the SWPhpWorkflowSource component to your configuration
'components'=>array( // adding the simple Workflow source component 'swSource'=> array( 'class'=>'application.extensions.simpleWorkflow.SWPhpWorkflowSource', ), ...
- add simpleWorkflow extension base folder to your imports
'import'=>array( ... 'application.extensions.simpleWorkflow.*', // Import simpleWorkflow extension ),
Usage
Once installed and correctly configured, the simpleWorkflow extension will handle the workflow for any model.
To enable simpleWorkflow for a given model, you must attach the SWActiveRecordBehavior
behavior to this model.
class MyModel extends CActiveRecord { public function behaviors() { return array( 'swBehavior' => array( 'class' => 'application.extensions.simpleWorkflow.SWActiveRecordBehavior' ) ); } }
The model can then be inserted into a workflow, and evolve among statuses inside this workflow. For instance, the code below insert an existing record into a workflow, or if already done, displays its current status :
$m=MyModel::model()->findByPk('1'); if( $m->swHasStatus() ){ echo 'status : '.$m->swGetStatus()->toString(); }else { $m->swInsertToWorkflow(); $m->save(); }
For more information on how to use the simpleWorkflow extension, please refer to the full documentation
Gii Command
Creating a workflow 'by hand' can become an error-prone task when several nodes and edges are required. One good option is to create the workflow using a visual tools, and after some searches it seems that one of the best application to do it is yEd Graph Editor. Of course, it is free to use !
Want to know more ? Read how to use the GII command to create your workflow...