/** * this is the callback that will be registered to the name returned from {@link getEventName()} * * @param Event $event */ public function handle(Event $event) { $container = $this->getContainer(); $request = $container->getRequest(); // canary, we pass the exception on if it is command line request if ($request->isCli()) { return; } //if $e = $event->getParam(); $response = $container->getResponse(); if ($e instanceof HttpException) { $response->setStatusCode($e->getCode(), $e->getStatusMessage()); // $event->setParam(false); ///$event->setParam(sprintf('%s - %s', $e->getCode(), $e->getStatusMessage())); $response->setTitle(sprintf('%s - %s', $e->getCode(), $e->getStatusMessage())); } else { $response->setTitle($e->getMessage()); } //if/else $response->setTemplate('page'); // we reset to the default page in case it was changed $response->setField('content_template', 'error.php'); $response->setField('e', $e); $event->setParam(null); }
/** * test that an event can be listened for and notified */ public function testListen() { $closure = function (Event $event) { $test = $event->getField('test'); $test->assertSame('test', $event->getName()); $test->assertFalse($event->isPersistent()); $event->setField('foo', 1); }; $this->dispatch->listen('test', $closure); $event = new Event('test', array(), false); $event->setField('test', $this); $event = $this->dispatch->broadcast($event); $this->assertEquals(1, $event->getField('foo')); }
/** * create a new Event * * @param string $msg the info message * @param array $options any other values you want to pass to the event callback */ public function __construct($msg, array $options = array()) { $this->msg = $msg; parent::__construct('framework.info', $options, true); }