Switon's route matcher for literal and dynamic paths, attribute discovery, prefix-aware matching, and route resolution events.
- Attribute-based routing: controllers and actions declare routes in place with
#[RequestMapping]and method mappings. - Prefix-aware discovery: controller prefixes can be derived from names or set explicitly.
- Path mapping rules:
'', relative, absolute, and array paths all map cleanly to routes. - View mappings:
#[ViewGetMapping]and related attributes can add GET views beside write actions. - Fast route lookup: literal routes stay in hash lookups while dynamic ones compile to regex.
- Match visibility:
RouteNotFoundandRouteParamsResolvedexpose misses and parameter resolution.
composer require switon/routeruse Switon\Routing\Attribute\GetMapping;
use Switon\Routing\Attribute\RequestMapping;
#[RequestMapping('/user')]
class UserController
{
#[GetMapping('{id}')]
public function showAction(int $id): array
{
return ['id' => $id];
}
}Docs: https://docs.switon.dev/latest/router
MIT.