Beispiel #1
0
 /**
  * @test
  */
 public function addOutputFunction()
 {
     $this->reponse->addOutputFunction('foo', function () {
     });
     $this->assertTrue($this->reponse->hasOutputFunction('foo'));
     $this->assertFalse($this->reponse->hasOutputFunction('bar'));
 }
Beispiel #2
0
 /**
  * @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;
 }