Commit d1520ad3 authored by Igor Wiedler's avatar Igor Wiedler

adjust code base for latest symfony, use core.response event for after filters

parent 7f6ce0ea
......@@ -52,8 +52,8 @@ class Framework extends HttpKernel
$dispatcher = new EventDispatcher();
$dispatcher->connect('core.request', array($this, 'parseRequest'));
$dispatcher->connect('core.request', array($this, 'runBeforeFilters'));
$dispatcher->connect('core.view', array($this, 'parseResponse'), -7);
$dispatcher->connect('core.view', array($this, 'runAfterFilters'), -8);
$dispatcher->connect('core.view', array($this, 'parseStringResponse'), -10);
$dispatcher->connect('core.response', array($this, 'runAfterFilters'));
$dispatcher->connect('core.exception', array($this, 'handleException'));
$resolver = new ControllerResolver();
......@@ -308,16 +308,11 @@ class Framework extends HttpKernel
*
* @see __construct()
*/
public function parseResponse(Event $event, $response)
public function parseStringResponse(Event $event, $response)
{
// convert return value into a response object
if (!$response instanceof Response) {
return new Response((string) $response);
}
return $response;
}
/**
* Handler for core.view
*
......@@ -349,7 +344,7 @@ class Framework extends HttpKernel
foreach ($this->handlers['error'] as $callback) {
$result = $callback($exception);
if (null !== $result && !$prevResult) {
$response = $this->parseResponse($event, $result);
$response = $this->parseStringResponse($event, $result);
$event->setProcessed(true);
$prevResult = $result;
}
......
......@@ -46,6 +46,60 @@ class BeforeAfterFilterTest extends \PHPUnit_Framework_TestCase
$request = Request::create('/foo');
$framework->handle($request);
$this->assertEquals(3, $i);
}
public function testAfterFilterWithResponseObject()
{
$i = 0;
$framework = new Framework(array(
'/foo' => function() use(&$i) {
$i++;
return new Response('foo');
},
));
$framework->after(function() use(&$i) {
$i++;
});
$request = Request::create('/foo');
$framework->handle($request);
$this->assertEquals(2, $i);
}
public function testMultipleFilters()
{
$i = 0;
$test = $this;
$framework = new Framework();
$framework->before(function() use(&$i, $test) {
$test->assertEquals(0, $i);
$i++;
});
$framework->before(function() use(&$i, $test) {
$test->assertEquals(1, $i);
$i++;
});
$framework->match('/foo', function() use(&$i, $test) {
$test->assertEquals(2, $i);
$i++;
});
$framework->after(function() use(&$i, $test) {
$test->assertEquals(3, $i);
$i++;
});
$framework->after(function() use(&$i, $test) {
$test->assertEquals(4, $i);
$i++;
});
$request = Request::create('/foo');
$framework->handle($request);
$this->assertEquals(5, $i);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment