websupply / route-annotation
Installs: 1 825
Dependents: 1
Suggesters: 0
Security: 0
Stars: 3
Watchers: 1
Forks: 0
Open Issues: 3
Type:neos-package
Requires
- neos/flow: ^8.2 || ^8.3
This package is auto-updated.
Last update: 2025-03-06 13:30:13 UTC
README
Move your routing configuration into the controller with the a Route
annotation
Install
composer require websupply/route-annotation
Example
Configuring a controller as follows
use WebSupply\RouteAnnotation\Annotations as WebSupply; #[WebSupply\Route(path: 'class-annotation')] class RouteAnnotatedController extends ActionController { #[WebSupply\Route("annotated/with/path")] public function annotatedWithPathAction(): string { return 'Hello'; } #[WebSupply\Route("annotated/with/argument/{name}")] public function annotatedUriWithArgumentAction(string $name):string { return 'Hello ' . $name; } }
Gives you the following routes
$ ./flow routing:list
Currently registered routes:
+---+-------------------------------------------------+----------------+-----------------------------------------------------------------------------------------------------------------+
| # | Uri Pattern | HTTP Method(s) | Name |
+---+-------------------------------------------------+----------------+-----------------------------------------------------------------------------------------------------------------+
| 1 | class-annotation/annotated/with/path | any | Annotated Route (WebSupply\RouteAnnotation\Controller\RouteAnnotatedController->annotatedWithPathAction) |
| 2 | class-annotation/annotated/with/argument/{name} | any | Annotated Route (WebSupply\RouteAnnotation\Controller\RouteAnnotatedController->annotatedUriWithArgumentAction) |
+---+-------------------------------------------------+----------------+-----------------------------------------------------------------------------------------------------------------+
Annotation properties
The Route
annotation can take following properties (known from the Routes.yaml
configuration)
string $path, null|string|array $method = null, string $format = 'html', ?bool $appendExceedingArguments = null
It respects the core routers handling of these configuration, as this is merely a different way of writing the configuration itself.
Support and sponsoring
Work on this package is supported by the danish web company WebSupply ApS