/** * @param $autoloader * @param $configDirectory */ public function __construct($autoloader, $configDirectory) { AnnotationRegistry::registerLoader([$autoloader, 'loadClass']); $this->config = new Config($configDirectory); $this->doctrine = new Doctrine($this->config->get('database')); $this->container = $this->setupContainer(); $this->router = new Router($this->doctrine, $this->config->get('router')); $this->dispatcher = new Dispatcher($this->container); $this->response = new Response($this->doctrine->getAnnotationReader()); }
/** * @param Doctrine $doctrine * @param Request $request * @return UrlMatcher */ protected function createRouter(Doctrine $doctrine, Request $request = null) { if (is_null($request)) { $request = Request::createFromGlobals(); } $context = new RequestContext(); $context->fromRequest($request); $this->symfonyRouteCollection = new RouteCollection(); $this->routes = []; $this->generateRoutesFromEntities($doctrine->getAnnotationReader(), $doctrine->getEntityClasses()); $this->generateRoutesFromControllers($doctrine->getAnnotationReader()); return new UrlMatcher($this->symfonyRouteCollection, $context); }