67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			67 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
| 
								 | 
							
								Routing Component
							 | 
						|||
| 
								 | 
							
								=================
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								The Routing component maps an HTTP request to a set of configuration variables.
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Getting Started
							 | 
						|||
| 
								 | 
							
								---------------
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```bash
							 | 
						|||
| 
								 | 
							
								composer require symfony/routing
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								```php
							 | 
						|||
| 
								 | 
							
								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'
							 | 
						|||
| 
								 | 
							
								```
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Sponsor
							 | 
						|||
| 
								 | 
							
								-------
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								The Routing component for Symfony 7.1 is [backed][1] by [redirection.io][2].
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								redirection.io logs all your website’s HTTP traffic, and lets you fix errors
							 | 
						|||
| 
								 | 
							
								with redirect rules in seconds. Give your marketing, SEO and IT teams the
							 | 
						|||
| 
								 | 
							
								right tool to manage your website traffic efficiently!
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Help Symfony by [sponsoring][3] its development!
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								Resources
							 | 
						|||
| 
								 | 
							
								---------
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								 * [Documentation](https://symfony.com/doc/current/routing.html)
							 | 
						|||
| 
								 | 
							
								 * [Contributing](https://symfony.com/doc/current/contributing/index.html)
							 | 
						|||
| 
								 | 
							
								 * [Report issues](https://github.com/symfony/symfony/issues) and
							 | 
						|||
| 
								 | 
							
								   [send Pull Requests](https://github.com/symfony/symfony/pulls)
							 | 
						|||
| 
								 | 
							
								   in the [main Symfony repository](https://github.com/symfony/symfony)
							 | 
						|||
| 
								 | 
							
								
							 | 
						|||
| 
								 | 
							
								[1]: https://symfony.com/backers
							 | 
						|||
| 
								 | 
							
								[2]: https://redirection.io
							 | 
						|||
| 
								 | 
							
								[3]: https://symfony.com/sponsor
							 |