/** * Test Slim runs Before and After callbacks * * Pre-conditions: * You have initialized a Slim app with an accessible route * that does not throw Exceptions or Errors. You append the Response * body in the before and after callbacks. * * Post-conditions: * The response body is set correctly. */ public function testSlimRunsBeforeAndAfterCallbacks() { Slim::init(); Slim::before(function () { Slim::response()->write('One '); }); Slim::before(function () { Slim::response()->write('Two '); }); Slim::after(function () { Slim::response()->write('Four '); }); Slim::after(function () { Slim::response()->write('Five'); }); Slim::get('/', function () { echo 'Three '; }); Slim::run(); $response = 'One Two Three Four Five'; $this->expectOutputString($response); $this->assertEquals($response, Slim::response()->body()); }
<?php /*** REQUIRE SLIM ***/ require 'slim/Slim.php'; /*** INITIALIZE SLIM ***/ Slim::init(); /*** CALLBACKS ***/ //Register a "before" callback for PHP >=5.3 Slim::before(function () { Slim::response()->write('<p>Before!</p>'); }); //Register a "before" callback for PHP <5.3 /* Slim::before('example_before'); function example_before() { Slim::response()->write('Before!'); } */ //Register an "after" callback for PHP >=5.3 Slim::after(function () { Slim::response()->write('<p>After!</p>'); }); //Register an "after" callback for PHP <5.3 /* Slim::after('example_after'); function example_after() { Slim::response()->write('After!'); } */ /*** ROUTES ***/ //Sample GET route for PHP >=5.3