Exemplo n.º 1
0
 public function handle(Request $request)
 {
     $this->assertControllerKey($request);
     $controller = $request->attributes->get(RouteAttribute::CONTROLLER);
     if ($this->isArrayDefinition($controller)) {
         $result = $this->container->call($controller[0], $controller[1], array_merge($request->attributes->all(), $request->request->all(), $request->query->all()));
         if ($result instanceof Response) {
             return $result;
         } else {
             if ($request->attributes->get(RouteAttribute::JSON_RESPONSE, false)) {
                 return new JsonResponse($result);
             } else {
                 return new Response($result);
             }
         }
     } else {
         $error = "The controller has an invalid [controller,action] signature!" . " You should check the Route creation!";
         $this->logger->error($error, ['RequestAttributes' => $request->attributes->add(), $request->getPathInfo()]);
         throw new InvalidParameterException($error);
     }
 }
Exemplo n.º 2
0
 /**
  * @expectedException InvalidArgumentException
  */
 public function testCallWithMissingArgs()
 {
     $c = new Container();
     $result = $c->call(ClassWithMethods::class, 'withDefaultArgs', ['arg2' => 2, 'arg3' => 3]);
     $this->assertEquals(['a', 'arg2', 'b'], $result);
 }