/** * @covers Symfony\Component\Routing\Loader\ClosureLoader::load */ public function testLoad() { $loader = new ClosureLoader(); $route = new Route('/'); $routes = $loader->load(function () use($route) { $routes = new RouteCollection(); $routes->add('foo', $route); return $routes; }); $this->assertEquals($route, $routes->get('foo'), '->load() loads a \\Closure resource'); }
/** * @param ContainerInterface $container * @return UrlMatcher */ function initRouting(ContainerInterface $container) { $routeCollection = new RouteCollection(); $viewRoute = new Route('/view', ['_controller' => 'Crud', '_action' => 'view']); $routeCollection->add('crud_view', $viewRoute); $addRoute = new Route('/add', ['_controller' => 'Crud', '_action' => 'add']); $routeCollection->add('crud_add', $addRoute); $editRoute = new Route('/edit/{id}', ['_controller' => 'Crud', '_action' => 'edit'], ['id' => '.+']); $routeCollection->add('crud_edit', $editRoute); $routeCollection->addPrefix('/{_locale}/crud'); $routeCollection->addDefaults(['_locale' => 'ru']); $routeCollection->addRequirements(['_locale' => 'ru|en']); $locator = new FileLocator([SRC_PATH . 'Resources/config']); $loader = new YamlFileLoader($locator); $collection = $loader->load('routes.yml'); $routeCollection->addCollection($collection); $closureLoader = new ClosureLoader(); $collection = $closureLoader->load(function () { return new RouteCollection(); }); $requestContext = new RequestContext(); $requestContext->fromRequest(Request::createFromGlobals()); $matcher = new UrlMatcher($routeCollection, $requestContext); $container->set('url_matcher', $matcher); $urlGenerator = new UrlGenerator($routeCollection, $requestContext); $container->set('url_generator', $urlGenerator); return $matcher; }