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(); ?>