Class lispa\amos\core\migration\AmosMigrationWorkflow

Inheritancelispa\amos\core\migration\AmosMigrationWorkflow » yii\db\Migration » yii\base\Component » yii\base\Object
Implementsyii\base\Configurable, yii\db\MigrationInterface
Uses Traitsyii\db\SchemaBuilderTrait

Class AmosMigrationWorkflow

This class is useful to add all the configurations for a new workflow. The only method to override is "setWorkflow". This method return an array of configurations array. In this array you can specify all workflow configuration. There are three type of workflow configuration defined in class constants: self::TYPE_WORKFLOW, self::TYPE_WORKFLOW_STATUS, self::TYPE_WORKFLOW_TRANSITION, self::TYPE_WORKFLOW_METADATA.

A single workflow configuration is also an array like this: [

 'type' => "CONFIGURATION_TYPE",
 "OTHER_FIELDS"

]

A workflow configuration is like this: [

 'type' => AmosMigrationWorkflow::TYPE_WORKFLOW,
 'id' => 'WORKFLOW_ID',
 'initial_status_id' => 'STATUS_ID'

]

A workflow status configuration is like this: [

 'type' => AmosMigrationWorkflow::TYPE_WORKFLOW_STATUS,
 'id' => 'STATUS_ID',
 'workflow_id' => 'WORKFLOW_ID',
 'label' => 'Workflow status description',
 'sort_order' => 0 // An integer

]

A workflow status transition configuration is like this: [

 'type' => AmosMigrationWorkflow::TYPE_WORKFLOW_TRANSITION,
 'workflow_id' => 'WORKFLOW_ID',
 'start_status_id' => 'START_STATUS_ID',
 'end_status_id' => 'END_STATUS_ID'

]

A workflow metadata configuration is like this: [

 'type' => AmosMigrationWorkflow::TYPE_WORKFLOW_METADATA,
 'workflow_id' => 'WORKFLOW_ID',
 'status_id' => 'STATUS_ID',
 'key' => 'KEY_TO_ADD',
 'value' => 'KEY_VALUE'

]

The preferred method to create a migration that create a workflow and override "setWorkflow" method is like this: protected function setWorkflow() {

 return ArrayHelper::merge(
     parent::setWorkflow(),
     $this->workflowConf(),
     $this->workflowStatusConf(),
     $this->workflowTransitionsConf(),
     $this->workflowMetadataConf()
 );

} The methods are all private and are all to be created at own developer discretion, because all the configurations can stay in one array in setWorkflow() method.

Public Properties

Hide inherited properties

PropertyTypeDescriptionDefined By
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$db yii\db\Connection|array|string The DB connection object or the application component ID of the DB connection that this migration should work with. yii\db\Migration
$processInverted boolean lispa\amos\core\migration\AmosMigrationWorkflow

Public Methods

Hide inherited methods

MethodDescriptionDefined By
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\Object
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
addColumn() Builds and executes a SQL statement for adding a new DB column. yii\db\Migration
addCommentOnColumn() Builds and execute a SQL statement for adding comment to column yii\db\Migration
addCommentOnTable() Builds a SQL statement for adding comment to table yii\db\Migration
addForeignKey() Builds a SQL statement for adding a foreign key constraint to an existing table. yii\db\Migration
addPrimaryKey() Builds and executes a SQL statement for creating a primary key. yii\db\Migration
alterColumn() Builds and executes a SQL statement for changing the definition of a column. yii\db\Migration
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
batchInsert() Creates and executes an batch INSERT SQL statement. yii\db\Migration
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
bigInteger() Creates a bigint column. yii\db\SchemaBuilderTrait
bigPrimaryKey() Creates a big primary key column. yii\db\SchemaBuilderTrait
binary() Creates a binary column. yii\db\SchemaBuilderTrait
boolean() Creates a boolean column. yii\db\SchemaBuilderTrait
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
char() Creates a char column. yii\db\SchemaBuilderTrait
className() Returns the fully qualified name of this class. yii\base\Object
createIndex() Builds and executes a SQL statement for creating a new index. yii\db\Migration
createTable() Builds and executes a SQL statement for creating a new DB table. yii\db\Migration
date() Creates a date column. yii\db\SchemaBuilderTrait
dateTime() Creates a datetime column. yii\db\SchemaBuilderTrait
decimal() Creates a decimal column. yii\db\SchemaBuilderTrait
delete() Creates and executes a DELETE SQL statement. yii\db\Migration
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
double() Creates a double column. yii\db\SchemaBuilderTrait
down() This method contains the logic to be executed when removing this migration. yii\db\Migration
dropColumn() Builds and executes a SQL statement for dropping a DB column. yii\db\Migration
dropCommentFromColumn() Builds and execute a SQL statement for dropping comment from column yii\db\Migration
dropCommentFromTable() Builds a SQL statement for dropping comment from table yii\db\Migration
dropForeignKey() Builds a SQL statement for dropping a foreign key constraint. yii\db\Migration
dropIndex() Builds and executes a SQL statement for dropping an index. yii\db\Migration
dropPrimaryKey() Builds and executes a SQL statement for dropping a primary key. yii\db\Migration
dropTable() Builds and executes a SQL statement for dropping a DB table. yii\db\Migration
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
execute() Executes a SQL statement. yii\db\Migration
float() Creates a float column. yii\db\SchemaBuilderTrait
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() lispa\amos\core\migration\AmosMigrationWorkflow
insert() Creates and executes an INSERT SQL statement. yii\db\Migration
integer() Creates an integer column. yii\db\SchemaBuilderTrait
isProcessInverted() lispa\amos\core\migration\AmosMigrationWorkflow
manageRemoveConfs() This method manages the remove of workflow configurations. lispa\amos\core\migration\AmosMigrationWorkflow
money() Creates a money column. yii\db\SchemaBuilderTrait
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
primaryKey() Creates a primary key column. yii\db\SchemaBuilderTrait
renameColumn() Builds and executes a SQL statement for renaming a column. yii\db\Migration
renameTable() Builds and executes a SQL statement for renaming a DB table. yii\db\Migration
safeDown() This method contains the logic to be executed when removing this migration. lispa\amos\core\migration\AmosMigrationWorkflow
safeUp() This method contains the logic to be executed when applying this migration. lispa\amos\core\migration\AmosMigrationWorkflow
setProcessInverted() lispa\amos\core\migration\AmosMigrationWorkflow
smallInteger() Creates a smallint column. yii\db\SchemaBuilderTrait
string() Creates a string column. yii\db\SchemaBuilderTrait
text() Creates a text column. yii\db\SchemaBuilderTrait
time() Creates a time column. yii\db\SchemaBuilderTrait
timestamp() Creates a timestamp column. yii\db\SchemaBuilderTrait
trigger() Triggers an event. yii\base\Component
truncateTable() Builds and executes a SQL statement for truncating a DB table. yii\db\Migration
up() This method contains the logic to be executed when applying this migration. yii\db\Migration
update() Creates and executes an UPDATE SQL statement. yii\db\Migration

Protected Methods

Hide inherited methods

MethodDescriptionDefined By
afterAddConfs() Override this to make operations after adding the workflow configurations. lispa\amos\core\migration\AmosMigrationWorkflow
afterRemoveConfs() Override this to make operations after removing the workflow configurations. lispa\amos\core\migration\AmosMigrationWorkflow
beforeAddConfs() Override this to make operations before adding the workflow configurations. lispa\amos\core\migration\AmosMigrationWorkflow
beforeRemoveConfs() Override this to make operations before removing the workflow configurations. lispa\amos\core\migration\AmosMigrationWorkflow
getDb() yii\db\SchemaBuilderTrait
setWorkflow() Override this method to set all the workflow configurations. lispa\amos\core\migration\AmosMigrationWorkflow

Constants

Hide inherited constants

ConstantValueDescriptionDefined By
TYPE_WORKFLOW 'workflow' lispa\amos\core\migration\AmosMigrationWorkflow
TYPE_WORKFLOW_METADATA 'workflow_metadata' lispa\amos\core\migration\AmosMigrationWorkflow
TYPE_WORKFLOW_STATUS 'workflow_status' lispa\amos\core\migration\AmosMigrationWorkflow
TYPE_WORKFLOW_TRANSITION 'workflow_transition' lispa\amos\core\migration\AmosMigrationWorkflow

Property Details

$processInverted public write-only property
public void setProcessInverted ( $processInverted )

Method Details

afterAddConfs() protected method

Override this to make operations after adding the workflow configurations.

protected boolean afterAddConfs ( )
afterRemoveConfs() protected method

Override this to make operations after removing the workflow configurations.

protected boolean afterRemoveConfs ( )
beforeAddConfs() protected method

Override this to make operations before adding the workflow configurations.

protected boolean beforeAddConfs ( )
beforeRemoveConfs() protected method

Override this to make operations before removing the workflow configurations.

protected boolean beforeRemoveConfs ( )
init() public method

public void init ( )
throws Exception
isProcessInverted() public method

public boolean isProcessInverted ( )
manageRemoveConfs() public method

This method manages the remove of workflow configurations.

public boolean manageRemoveConfs ( )
safeDown() public method

This method contains the logic to be executed when removing this migration.

This method differs from down() in that the DB logic implemented here will be enclosed within a DB transaction. Child classes may implement this method instead of down() if the DB logic needs to be within a transaction.

Note: Not all DBMS support transactions. And some DB queries cannot be put into a transaction. For some examples, please refer to implicit commit. If this is the case, you should still implement up() and down(), instead.

public boolean safeDown ( )
return boolean

Return a false value to indicate the migration fails and should not proceed further. All other return values mean the migration succeeds.

safeUp() public method

This method contains the logic to be executed when applying this migration.

This method differs from up() in that the DB logic implemented here will be enclosed within a DB transaction. Child classes may implement this method instead of up() if the DB logic needs to be within a transaction.

Note: Not all DBMS support transactions. And some DB queries cannot be put into a transaction. For some examples, please refer to implicit commit. If this is the case, you should still implement up() and down(), instead.

public boolean safeUp ( )
return boolean

Return a false value to indicate the migration fails and should not proceed further. All other return values mean the migration succeeds.

setProcessInverted() public method

public void setProcessInverted ( $processInverted )
$processInverted boolean
setWorkflow() protected method

Override this method to set all the workflow configurations.

protected array setWorkflow ( )