public static function boot() { parent::boot(); static::registerDefaultEvents(); static::creating(function ($model) { $model->beforeCreate(); }); }
public function testOrderingOfCallbacks() { DynamicModel::clearDynamicMethods(); $machine = with(new StateMachine('DynamicModel'))->setStateAttributeName('status'); $machine->addState('stopped', ['onExit' => function ($obj) { $obj->callback_did_occur = $obj->callback_did_occur . 'Oes'; }]); $machine->addState('running', ['onEnter' => function ($obj) { $obj->callback_did_occur = $obj->callback_did_occur . 'Oer'; }]); $machine->addEvent('start', ['before' => function ($obj) { $obj->callback_did_occur = $obj->callback_did_occur . 'Bs'; }, 'after' => function ($obj) { $obj->callback_did_occur = $obj->callback_did_occur . 'As'; }])->transitions('stopped', 'running', ['onTransition' => function ($obj) { $obj->callback_did_occur = $obj->callback_did_occur . 'Ot'; }]); $obj = new DynamicModel(); $obj->status = 'stopped'; $obj->start(); $this->assertEquals('BsOesOtOerAs', $obj->callback_did_occur); }