Exemplo n.º 1
0
 public function setUp()
 {
     $this->container = $container = new Container();
     $container->set('secret', 'someSecret');
     $container->set('cerad_user_master_password', 'testing');
     $container->set('db_url_users', 'mysql://*****:*****@localhost/tests');
     new AuthServices($container);
 }
Exemplo n.º 2
0
 protected function handleRaw(Request $request, $requestType)
 {
     // Add request
     $requestStack = $this->container->get('request_stack');
     $requestStack->push($request);
     // Match the route
     $matcher = $this->container->get('route_matcher');
     $match = $matcher->match($request->getRoutePath());
     if (!$match) {
         throw new \Exception('No match for ' . $request->getRoutePath());
     }
     $request->setAttributes($match);
     // Dispatcher
     $dispatcher = $this->container->get('event_dispatcher');
     // Dispatch request event
     $response = $this->dispatchRequest($dispatcher, $request, $requestType);
     if ($response) {
         $response = $this->dispatchResponse($dispatcher, $request, $response);
         $requestStack->pop($request);
         return $response;
     }
     /** @var callable $action */
     $action = $request->getAttribute('_action');
     if ($action) {
         $response = $action($request);
     }
     /** @var callable $view */
     $view = $request->getAttribute('_view');
     if ($view) {
         $response = $view($request, $response);
     }
     if (!$response) {
         die('no response');
     }
     // Dispatch response event
     $response = $this->dispatchResponse($dispatcher, $request, $response);
     // Clean up
     $requestStack->pop($request);
     return $response;
 }
Exemplo n.º 3
0
 public function registerServices(Container $container)
 {
     // Me
     $container->set('kernel', $this);
     // Request stack
     $container->set('request_stack', function () {
         return new RequestStack();
     });
     /* =============================================
      * $this->context->getHost()
      * $this->context->getMethod()
      * $this->context->getScheme()
      */
     $container->set('request_context', function (Container $container) {
         /** @var Request $request */
         $request = $container->get('request_stack')->getMasterRequest();
         $context = [];
         $context['method'] = $request->getMethod();
         return $context;
     });
     $container->set('route_matcher', function (Container $container) {
         $routes = [];
         $tags = $container->getTags('route');
         foreach ($tags as $tag) {
             $serviceId = $tag['service_id'];
             $service = $container->get($serviceId);
             $routes[$serviceId] = $service;
         }
         return new UrlMatcher($routes, $container->get('request_context'));
     });
     $container->set('event_dispatcher', function (Container $container) {
         $dispatcher = new EventDispatcher();
         $tags = $container->getTags('event_listener');
         foreach ($tags as $tag) {
             $listener = $container->get($tag['service_id']);
             $dispatcher->addSubscriber($listener);
         }
         return $dispatcher;
     });
     $container->set('kernel_cors_listener', function () {
         return new CorsListener();
     }, 'event_listener');
 }