Skip to content

niekoost/simpleWorkflow

 
 

Repository files navigation

THIS IS A PRE-RELEASE REPOSITORY, IT IS CURRENTLY NOT IN A WORKING STATE simpleWorkflow

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.

###Resources

##Documentation

###Requirements

  • Yii 2.0.0 or above

###Installation

Add to your applications config file (for instance backend/config/main.php)

'components'=>array(	
	// adding the simple Workflow source component
    'swSource'=> array(
        'class'=>'niekoost\simpleWorkflow\SWPhpWorkflowSource',
	), ...

###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.

use Yii;
use niekoost\simpleWorkflow\SWActiveRecordBehavior;

class MyModel extends \yii\db\ActiveRecord {

    public function behaviors() {
        return [
            'swBehavior' => [
                'class' => SWActiveRecordBehavior::className()
            ]
        ];
    }
}

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 !

Once created and saved to graphml format, the workflow can be converted into a simpleworkflow, ready to use. To learn more about the simpleWorkflow Gii command, please check the command folder.

Copyright (c) Raoul All rights reserved. Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. Neither the name of Raoul nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE

About

A simple workflow engine for the Yii Framework

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • HTML 86.2%
  • PHP 13.7%
  • CSS 0.1%