Author: Fabien Potencier (fabien.potencier@symfony-project.com)
Inheritance: extends Loader
 /**
  * @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;
}