public function testMicroFinishHandlers() { $trace = array(); $app = new Phalcon\Mvc\Micro(); $app->finish(function () use(&$trace) { $trace[] = 1; }); $app->finish(function () use(&$trace) { $trace[] = 1; }); $app->map('/blog', function () use(&$trace) { $trace[] = 1; }); $app->handle('/blog'); $this->assertEquals(count($trace), 3); }
<?php $app = new Phalcon\Mvc\Micro(); //Executed before every route executed //Return false cancels the route execution $app->before(function () use($app) { if ($app['session']->get('auth') == false) { return false; } return true; }); $app->map('/api/robots', function () { return array('status' => 'OK'); }); $app->after(function () use($app) { //This is executed after the route is executed echo json_encode($app->getReturnedValue()); }); $app->finish(function () use($app) { //This is executed when the request has been served });
public function testMicroStopMiddlewareClasses() { Phalcon\DI::reset(); $app = new Phalcon\Mvc\Micro(); $app->map('/api/site', function () { return true; }); $middleware = new MyMiddlewareStop(); $app->before($middleware); $app->before($middleware); $app->after($middleware); $app->after($middleware); $app->finish($middleware); $app->finish($middleware); $app->handle('/api/site'); $this->assertEquals($middleware->getNumber(), 3); }