, (*1)
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., (*2)
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, (*3)
Resources
Documentation
Requirements
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., (*4)
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 :, (*5)
$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, (*6)
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 !, (*7)
Want to know more ? Read how to use the GII command to create your workflow..., (*8)