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
Alexander M. Turek 6bf07f2bc9 Merge branch '5.1' into 5.2
* 5.1:
  CS: Apply ternary_to_null_coalescing fixer
2020-12-27 14:15:00 +01:00
..
Annotation [Validator] Constraints as php 8 Attributes. 2020-09-30 00:43:35 +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 '5.1' into 5.2 2020-12-27 14:15:00 +01:00
Matcher Merge branch '4.4' into 5.1 2020-12-27 14:04:50 +01:00
Tests Merge branch '5.1' into 5.2 2020-12-08 18:03:37 +01:00
.gitattributes add missing gitattributes for phpunit-bridge 2020-03-27 17:54:36 +01:00
.gitignore
CHANGELOG.md Added missing changelog entries. 2020-09-18 12:11:46 +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 '5.1' into 5.x 2020-10-24 14:08:07 +02:00
LICENSE Update year in license files 2020-01-01 12:03:25 +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 '5.1' into 5.2 2020-12-27 14:15:00 +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