public function register(Container $container) { $container['request'] = function ($c) { return Request::createFromGlobals(); }; $container['requestStack'] = function ($c) { $stack = new RequestStack(); $stack->push($c['request']); return $stack; }; $container['requestContext'] = function ($c) { $rc = new RequestContext(); $rc->fromRequest($c['request']); return $rc; }; $container['resolver'] = function ($c) { return new ControllerResolver(); }; $container['httpKernel'] = function ($c) { return new HttpKernel($c['dispatcher'], $c['resolver'], $c['requestStack']); }; $container['router'] = function ($c) { $router = new ChainRouter($c['logger']); $router->add($c['staticRouter']); $router->add($c['nodeRouter']); return $router; }; $container['staticRouter'] = function ($c) { return new StaticRouter($c['routeCollection'], ['cache_dir' => (bool) $c['config']['devMode'] ? null : ROADIZ_ROOT . '/cache/routing', 'debug' => (bool) $c['config']['devMode'], 'generator_cache_class' => 'StaticUrlGenerator', 'matcher_cache_class' => 'StaticUrlMatcher'], $c['requestContext'], $c['logger']); }; $container['nodeRouter'] = function ($c) { return new NodeRouter($c['em'], ['cache_dir' => (bool) $c['config']['devMode'] ? null : ROADIZ_ROOT . '/cache/routing', 'debug' => (bool) $c['config']['devMode'], 'generator_cache_class' => 'NodeUrlGenerator', 'matcher_cache_class' => 'NodeUrlMatcher'], $c['requestContext'], $c['logger'], $c['stopwatch']); }; $container['urlGenerator'] = function ($c) { return $c['staticRouter']->getGenerator(); }; $container['httpUtils'] = function ($c) { return new HttpUtils($c['router'], $c['router']); }; $container['routeListener'] = function ($c) { return new TimedRouteListener($c['router'], $c['requestContext'], null, $c['requestStack'], $c['stopwatch']); }; $container['routeCollection'] = function ($c) { if (isset($c['config']['install']) && true === $c['config']['install']) { /* * Get Install routes */ $installClassname = Kernel::INSTALL_CLASSNAME; $installClassname::setupDependencyInjection($c); return new InstallRouteCollection($installClassname); } else { /* * Get App routes */ $rCollection = new RoadizRouteCollection($c['backendClass'], $c['frontendThemes'], SettingsBag::get('static_domain_name'), $c['stopwatch']); return $rCollection; } }; return $container; }
public function register(Container $container) { $container['request'] = function ($c) { return Request::createFromGlobals(); }; $container['requestStack'] = function ($c) { $stack = new RequestStack(); $stack->push($c['request']); return $stack; }; $container['requestContext'] = function ($c) { $rc = new RequestContext(); $rc->fromRequest($c['request']); return $rc; }; $container['resolver'] = function ($c) { return new ControllerResolver(); }; $container['httpKernel'] = function ($c) { return new HttpKernel($c['dispatcher'], $c['resolver'], $c['requestStack']); }; $container['urlMatcher'] = function ($c) { if (RouteCollectionSubscriber::needToDumpUrlTools()) { return new UrlMatcher($c['routeCollection'], $c['requestContext']); } else { return new MixedUrlMatcher($c['requestContext'], $c['dynamicUrlMatcher'], (bool) $c['config']['install']); } }; $container['dynamicUrlMatcher'] = function ($c) { return new NodeUrlMatcher($c['requestContext'], $c['em']); }; $container['urlGeneratorClass'] = function ($c) { return '\\GlobalUrlGenerator'; }; $container['urlGenerator'] = function ($c) { if (RouteCollectionSubscriber::needToDumpUrlTools()) { return new UrlGenerator($c['routeCollection'], $c['requestContext'], $c['logger']); } else { $className = $c['urlGeneratorClass']; return new $className($c['requestContext']); } }; $container['httpUtils'] = function ($c) { return new HttpUtils($c['urlGenerator'], $c['urlMatcher']); }; $container['routeListener'] = function ($c) { return new RouterListener($c['urlMatcher'], $c['requestContext'], null, $c['requestStack']); }; if (isset($container['config']['install']) && true === $container['config']['install']) { /* * Get Install routes */ $container['routeCollection'] = function ($c) { $installClassname = Kernel::INSTALL_CLASSNAME; $feCollection = $installClassname::getRoutes(); $rCollection = new RouteCollection(); $rCollection->addCollection($feCollection); $installClassname::setupDependencyInjection($c); return $rCollection; }; } else { /* * Get App routes */ $container['routeCollection'] = function ($c) { $c['stopwatch']->start('routeCollection'); $rCollection = new RouteCollection(); /* * Add Assets controller routes */ $rCollection->addCollection(\RZ\Roadiz\CMS\Controllers\AssetsController::getRoutes()); /* * Add Entry points controller routes */ $rCollection->addCollection(\RZ\Roadiz\CMS\Controllers\EntryPointsController::getRoutes()); /* * Add Backend routes */ $beClass = $c['backendClass']; $cmsCollection = $beClass::getRoutes(); if ($cmsCollection !== null) { $rCollection->addCollection($cmsCollection); } /* * Add Frontend routes * * return 'RZ\Roadiz\CMS\Controllers\FrontendController'; */ foreach ($c['frontendThemes'] as $theme) { $feClass = $theme->getClassName(); $feCollection = $feClass::getRoutes(); $feBackendCollection = $feClass::getBackendRoutes(); if ($feCollection !== null) { // set host pattern if defined if ($theme->getHostname() != '*' && $theme->getHostname() != '') { $feCollection->setHost($theme->getHostname()); } /* * Add a global prefix on theme static routes */ if ($theme->getRoutePrefix() != '') { $feCollection->addPrefix($theme->getRoutePrefix()); } $rCollection->addCollection($feCollection); } if ($feBackendCollection !== null) { /* * Do not prefix or hostname admin routes. */ $rCollection->addCollection($feBackendCollection); } } $c['stopwatch']->stop('routeCollection'); return $rCollection; }; } return $container; }
public function register(Container $container) { $container['request'] = function ($c) { return Request::createFromGlobals(); }; $container['requestStack'] = function ($c) { $stack = new RequestStack(); $stack->push($c['request']); return $stack; }; $container['requestContext'] = function ($c) { $rc = new RequestContext(); $rc->fromRequest($c['request']); return $rc; }; $container['resolver'] = function ($c) { return new ControllerResolver(); }; $container['httpKernel'] = function ($c) { return new HttpKernel($c['dispatcher'], $c['resolver'], $c['requestStack']); }; $container['urlMatcher'] = function ($c) { if (RouteCollectionSubscriber::needToDumpUrlTools()) { return new UrlMatcher($c['routeCollection'], $c['requestContext']); } else { return new MixedUrlMatcher($c['requestContext'], $c['dynamicUrlMatcher'], (bool) $c['config']['install'], $c['stopwatch']); } }; $container['dynamicUrlMatcher'] = function ($c) { return new NodeUrlMatcher($c['requestContext'], $c['em'], $c['stopwatch']); }; $container['urlGeneratorClass'] = function ($c) { return '\\GlobalUrlGenerator'; }; $container['urlGenerator'] = function ($c) { if (RouteCollectionSubscriber::needToDumpUrlTools()) { return new UrlGenerator($c['routeCollection'], $c['requestContext'], $c['logger']); } else { $className = $c['urlGeneratorClass']; return new $className($c['requestContext']); } }; $container['httpUtils'] = function ($c) { return new HttpUtils($c['urlGenerator'], $c['urlMatcher']); }; $container['routeListener'] = function ($c) { return new TimedRouteListener($c['urlMatcher'], $c['requestContext'], null, $c['requestStack'], $c['stopwatch']); }; if (isset($container['config']['install']) && true === $container['config']['install']) { /* * Get Install routes */ $container['routeCollection'] = function ($c) { $installClassname = Kernel::INSTALL_CLASSNAME; $installClassname::setupDependencyInjection($c); return new InstallRouteCollection($installClassname); }; } else { /* * Get App routes */ $container['routeCollection'] = function ($c) { $c['stopwatch']->start('routeCollection'); $rCollection = new RoadizRouteCollection($c['backendClass'], $c['frontendThemes'], SettingsBag::get('static_domain_name')); $c['stopwatch']->stop('routeCollection'); return $rCollection; }; } return $container; }