protected function setUpListener() { $that = $this; $overrider = new OMClassOverrider(PropelExtendingTest::$map); EventDispatcherProxy::setDispatcherGetter(function () use($that, $overrider) { $c = $that->getContainer(); $d = new ContainerAwareEventDispatcher($c); $d->addListener('om.detect', array($overrider, 'onDetectionRequest')); return $d; }); return $overrider; }
public function boot() { // set callback in proxy dispatcher, // so it can later get real dispatcher from container EventDispatcherProxy::setDispatcherGetter(array($this->container, 'get'), array('glorpen.propel.event.dispatcher')); }
public function testPreEventWithSoftDeleteBehavior() { $that = $this; $order = array(); EventDispatcherProxy::setDispatcherGetter(function () use($that, &$order) { $c = $that->getContainer(); $d = new ContainerAwareEventDispatcher($c); $d->addListener('model.delete.pre', function ($e) use($that, &$order) { $order[] = 'model.delete.pre'; }); $d->addListener('delete.pre', function ($e) use($that, &$order) { $order[] = 'delete.pre'; }); $d->addListener('query.delete.pre', function ($e) use($that, &$order) { $order[] = 'query.delete.pre'; }); return $d; }); $m = new SoftdeleteTable(); $m->save(); $m->delete(); $that->assertContains('model.delete.pre', $order, 'Delete model event'); $that->assertContains('delete.pre', $order, 'Model global delete event'); $order = array(); BaseSoftdeleteTableQuery::create()->filterById(1)->delete(); $that->assertContains('delete.pre', $order, 'Query global delete event'); $that->assertContains('query.delete.pre', $order, 'Query delete event'); }