Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Routing Laravel Package

symfony/routing

Symfony Routing maps HTTP requests to routes and parameters, and generates URLs from route definitions. Define Route and RouteCollection, then use UrlMatcher to match paths and UrlGenerator to build links based on a RequestContext.

View on GitHub
Deep Wiki
Context7

Maps an HTTP request to a set of configuration variables

Frequently asked questions about Routing
Can I use Symfony Routing directly in Laravel without replacing the default router?
Yes. Symfony Routing integrates smoothly with Laravel’s existing router. You can use `UrlMatcher` for request-to-route resolution and `UrlGenerator` for URL generation alongside Laravel’s `route()` helper. The package is already a dependency in Laravel (via `symfony/http-kernel`), so no additional bloat is introduced.
How do I migrate from Laravel’s Route::get() to Symfony’s attribute routing in PHP 8+?
Replace Laravel’s `Route` class with Symfony’s `[Route]` attribute (e.g., `[Route('/blog/{slug}', name: 'blog_show')]`). Use `RouteCollection` to load routes programmatically or via annotations. Laravel’s `RouteServiceProvider` can bind the `UrlGenerator` and `UrlMatcher` to handle attribute-based routes seamlessly.
Does Symfony Routing support API versioning (e.g., /v1/, /v2/) in Laravel?
Yes, but requires custom logic. Use route parameters (e.g., `/v{version}/resource`) or subdomains (e.g., `v1.example.com`). Symfony’s `RequestContext` can dynamically set base paths or domains. For Laravel, bind a custom `RouteLoader` to prepend version prefixes to routes in `RouteCollection`.
Will Symfony Routing break existing Laravel route helpers like `route('name')`?
No. Symfony’s `UrlGenerator` replaces Laravel’s `route()` helper under the hood, but the API remains identical. You can inject `UrlGenerator` into Laravel’s service container to maintain backward compatibility. For example, `route('blog_show')` becomes `$generator->generate('blog_show')` with the same parameters.
How do I load routes from YAML/JSON instead of Laravel’s PHP routes/web.php?
Use Symfony’s `YamlFileLoader` or `JsonFileLoader` to load routes from external files. Create a custom `RouteLoader` in Laravel’s `RouteServiceProvider` to merge YAML/JSON routes into a `RouteCollection`. This is useful for dynamic or configuration-driven routing in microservices.
Is Symfony Routing faster than Laravel’s default router for high-traffic APIs?
Yes, Symfony Routing is optimized for performance, especially with pre-compiled routes via `UrlMatcher`. Benchmark against Laravel’s router, but expect lower overhead for complex route structures. For Laravel, cache the `RouteCollection` in the service container to avoid recompilation on every request.
Can I use Symfony Routing in a Laravel + non-Laravel PHP monorepo for standardization?
Absolutely. Symfony Routing is framework-agnostic and works identically across Laravel and vanilla PHP projects. Share a single `RouteCollection` configuration (YAML/JSON/PHP) between services. This unifies routing logic, reduces duplication, and simplifies maintenance in polyglot architectures.
How do I bind middleware to Symfony routes in Laravel?
Use Symfony’s route requirements or attributes (e.g., `[Route(..., requirements: ['auth' => true])]`) and map them to Laravel middleware via `Route::addRequirement()`. In `RouteServiceProvider`, bind a custom `RouteCollection` to Laravel’s middleware pipeline using `Route::middleware()` or PSR-15 middleware.
What Laravel versions support Symfony Routing v8+ (PHP 8 attributes)?
Symfony Routing v8+ requires Laravel 8.0+ (PHP 8.0+) for full attribute routing support. For older Laravel versions, use v7.x of Symfony Routing, which supports annotations (`@Route`) instead. Always check Laravel’s `composer.json` for Symfony component version constraints.
How do I test Symfony Routing in Laravel unit tests?
Mock `UrlGenerator` and `UrlMatcher` in PHPUnit tests. For example, verify URL generation with `$generator->generate()` and route matching with `$matcher->match()`. Use Laravel’s `RouteServiceProvider` to bind test instances of `RouteCollection` and `RequestContext`. Symfony’s routing components are highly mockable for isolated testing.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
codraw/framework-extra-bundle
codraw/messenger
codraw/security
codraw/mailer
codraw/contracts
codraw/profiling
codraw/dependency-injection
codraw/tester
codraw/core
nexmo/api-specification
capell-app/block-library
axium/identity
cetria/laravel-dummy-models
cetria/reflection-helper
agropredict/sso-auth-bundle
evolvestudio/spam-protection
datacore/hub-sdk
develia/commons
cuci/prototurk-sdk
cuci/prototurk-sdk-symfony