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); }
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; }
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'); }