This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Routing
Nicolas Grekas 41a7eaa654 Merge branch '4.4' into 5.1
* 4.4:
  CS fix
  [travis] use PHP 8.0 to patch return types and run deps=low
  Update sl_SI translations
  Don't trigger deprecation for deprecated aliases pointing to deprecated definitions
  [HttpFoundation] use atomic writes in MockFileSessionStorage
  [DI] fix param annotation
  [Config] Add \Symfony\Component\Config\Loader::load() return type
  Simplify PHP CS Fixer config
  Rename normalize param
2021-01-14 16:25:38 +01:00
..
Annotation Merge branch '4.4' into 5.1 2020-09-02 18:23:27 +02:00
DependencyInjection Merge branch '3.4' into 4.1 2019-01-16 19:21:11 +01:00
Exception Allow \Throwable $previous everywhere 2019-11-12 15:51:11 +01:00
Generator Merge branch '4.4' into 5.1 2020-12-08 18:02:38 +01:00
Loader Merge branch '4.4' into 5.1 2021-01-12 15:25:50 +01:00
Matcher Merge branch '4.4' into 5.1 2021-01-11 10:50:50 +01:00
Tests Use ::class keyword when possible 2021-01-11 11:34:08 +01:00
.gitattributes add missing gitattributes for phpunit-bridge 2020-03-27 17:54:36 +01:00
.gitignore
CHANGELOG.md [FrameworkBundle] Allow configuring the default base URI with a DSN 2020-05-04 09:14:05 +02:00
CompiledRoute.php Add return types to internal & magic methods when possible 2019-08-22 15:18:41 +02:00
composer.json Merge branch '4.4' into 5.1 2021-01-14 16:25:38 +01:00
LICENSE Bump license year 2021-01-01 10:24:35 +01:00
phpunit.xml.dist Bump phpunit XSD version to 5.2 2018-11-11 12:18:13 +01:00
README.md Add installation and minimal example to README 2020-03-28 12:43:28 +01:00
RequestContext.php Merge branch '4.4' into 5.1 2020-12-27 14:04:50 +01:00
RequestContextAwareInterface.php [DI] minor docblock fixes 2017-10-24 13:40:19 +02:00
Route.php Merge branch '4.4' into 5.1 2020-12-27 14:04:50 +01:00
RouteCollection.php Merge branch '4.4' into 5.1 2020-12-27 14:04:50 +01:00
RouteCollectionBuilder.php Leverage trigger_deprecation() from symfony/deprecation-contracts 2020-02-08 15:04:50 +01:00
RouteCompiler.php Merge branch '4.4' into 5.1 2020-12-08 18:02:38 +01:00
RouteCompilerInterface.php [DI] minor docblock fixes 2017-10-24 13:40:19 +02:00
Router.php Merge branch '4.4' into 5.1 2020-09-02 18:23:27 +02:00
RouterInterface.php [Routing] added a warning about the getRouteCollection() method 2019-08-04 04:46:49 +02:00

Routing Component

The Routing component maps an HTTP request to a set of configuration variables.

Getting Started

$ composer require symfony/routing
use App\Controller\BlogController;
use Symfony\Component\Routing\Generator\UrlGenerator;
use Symfony\Component\Routing\Matcher\UrlMatcher;
use Symfony\Component\Routing\RequestContext;
use Symfony\Component\Routing\Route;
use Symfony\Component\Routing\RouteCollection;

$route = new Route('/blog/{slug}', ['_controller' => BlogController::class]);
$routes = new RouteCollection();
$routes->add('blog_show', $route);

$context = new RequestContext();

// Routing can match routes with incoming requests
$matcher = new UrlMatcher($routes, $context);
$parameters = $matcher->match('/blog/lorem-ipsum');
// $parameters = [
//     '_controller' => 'App\Controller\BlogController',
//     'slug' => 'lorem-ipsum',
//     '_route' => 'blog_show'
// ]

// Routing can also generate URLs for a given route
$generator = new UrlGenerator($routes, $context);
$url = $generator->generate('blog_show', [
    'slug' => 'my-blog-post',
]);
// $url = '/blog/my-blog-post'

Resources