/** * @test */ public function addOutputFunction() { $this->reponse->addOutputFunction('foo', function () { }); $this->assertTrue($this->reponse->hasOutputFunction('foo')); $this->assertFalse($this->reponse->hasOutputFunction('bar')); }
/** * @param Router $router * @return string */ protected function dispatchController(Router $router) { $responder = $router->getResponder(); $parameters = $router->getParameters(); $request = new Request($this->requestMethod); $response = new TwigView(); try { /** @var AbstractController $controller */ $controller = new $responder($request, $response); if (!method_exists($controller, $this->requestMethod)) { // Send HTTP 405 response $controller->handleNotSupportedMethod($this->requestMethod); } $defaultTemplateName = $this->determineDefaultTemplateName($controller); if ($defaultTemplateName) { $response->setTemplateName($defaultTemplateName); } $controller->setParameters($parameters); $controller->initialize(); $output = $controller->{$this->requestMethod}($parameters); if ($output === NULL) { $output = $response->render(); } return $output; } catch (DispatchingInterruptedException $e) { $output = ''; } return $output; }