Sophie

Sophie

distrib > Mageia > 3 > i586 > by-pkgid > 702065d0fe9059345282c9273f9dcf6d > files > 6

ezcomponents-WorkflowSignalSlotTiein-1.0-3.mga3.noarch.rpm

<?php
// Connect signals to slots.
$signals  = new ezcSignalCollection;
$receiver = new MyReceiver;

$signals->connect( 'afterExecutionStarted', array( $receiver, 'afterExecutionStarted' ) );
$signals->connect( 'afterExecutionSuspended', array( $receiver, 'afterExecutionSuspended' ) );
$signals->connect( 'afterExecutionResumed', array( $receiver, 'afterExecutionResumed' ) );
$signals->connect( 'afterExecutionCancelled', array( $receiver, 'afterExecutionCancelled' ) );
$signals->connect( 'afterExecutionEnded', array( $receiver, 'afterExecutionEnded' ) );
$signals->connect( 'beforeNodeActivated', array( $receiver, 'beforeNodeActivated' ) );
$signals->connect( 'afterNodeActivated', array( $receiver, 'afterNodeActivated' ) );
$signals->connect( 'afterNodeExecuted', array( $receiver, 'afterNodeExecuted' ) );
$signals->connect( 'afterRolledBackServiceObject', array( $receiver, 'afterRolledBackServiceObject' ) );
$signals->connect( 'afterThreadStarted', array( $receiver, 'afterThreadStarted' ) );
$signals->connect( 'afterThreadEnded', array( $receiver, 'afterThreadEnded' ) );
$signals->connect( 'beforeVariableSet', array( $receiver, 'beforeVariableSet' ) );
$signals->connect( 'afterVariableSet', array( $receiver, 'afterVariableSet' ) );
$signals->connect( 'beforeVariableUnset', array( $receiver, 'beforeVariableUnset' ) );
$signals->connect( 'afterVariableUnset', array( $receiver, 'afterVariableUnset' ) );

// Set up database connection.
$db = ezcDbFactory::create( 'mysql://test@localhost/test' );

// Set up workflow definition storage (database).
$definition = new ezcWorkflowDatabaseDefinitionStorage( $db );

// Load latest version of workflow named "Test".
$workflow = $definition->loadByName( 'Test' );

// Set up database-based workflow executer.
$execution = new ezcWorkflowDatabaseExecution( $db );

// Pass workflow object to workflow executer.
$execution->workflow = $workflow;

// Register SignalSlot workflow engine plugin.
$plugin = new ezcWorkflowSignalSlotPlugin;
$plugin->signals = $signals;

$execution->addPlugin( $plugin );

// Start workflow execution.
$id = $execution->start();
?>