Commit 8540d369 authored by Fabien Potencier's avatar Fabien Potencier

changed before/after/error method so that they accept any valid PHP callable

parent e40002f0
...@@ -196,7 +196,7 @@ class Application extends \Pimple implements HttpKernelInterface, EventSubscribe ...@@ -196,7 +196,7 @@ class Application extends \Pimple implements HttpKernelInterface, EventSubscribe
public function before($callback, $priority = 0) public function before($callback, $priority = 0)
{ {
$this['dispatcher']->addListener(SilexEvents::BEFORE, function (GetResponseEvent $event) use ($callback) { $this['dispatcher']->addListener(SilexEvents::BEFORE, function (GetResponseEvent $event) use ($callback) {
$ret = $callback($event->getRequest()); $ret = call_user_func($callback, $event->getRequest());
if ($ret instanceof Response) { if ($ret instanceof Response) {
$event->setResponse($ret); $event->setResponse($ret);
...@@ -216,7 +216,7 @@ class Application extends \Pimple implements HttpKernelInterface, EventSubscribe ...@@ -216,7 +216,7 @@ class Application extends \Pimple implements HttpKernelInterface, EventSubscribe
public function after($callback, $priority = 0) public function after($callback, $priority = 0)
{ {
$this['dispatcher']->addListener(SilexEvents::AFTER, function (FilterResponseEvent $event) use ($callback) { $this['dispatcher']->addListener(SilexEvents::AFTER, function (FilterResponseEvent $event) use ($callback) {
$callback($event->getRequest(), $event->getResponse()); call_user_func($callback, $event->getRequest(), $event->getResponse());
}, $priority); }, $priority);
} }
...@@ -254,7 +254,7 @@ class Application extends \Pimple implements HttpKernelInterface, EventSubscribe ...@@ -254,7 +254,7 @@ class Application extends \Pimple implements HttpKernelInterface, EventSubscribe
$exception = $event->getException(); $exception = $event->getException();
$code = $exception instanceof HttpExceptionInterface ? $exception->getStatusCode() : 500; $code = $exception instanceof HttpExceptionInterface ? $exception->getStatusCode() : 500;
$result = $callback($exception, $code); $result = call_user_func($callback, $exception, $code);
if (null !== $result) { if (null !== $result) {
$event->setStringResponse($result); $event->setStringResponse($result);
......
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