websupply/route-annotation

There is no license information available for the latest version (0.0.3) of this package.

Installs: 1 466

Dependents: 0

Suggesters: 0

Security: 0

Stars: 3

Watchers: 1

Forks: 0

Open Issues: 3

Type:neos-package

0.0.3 2023-02-06 13:50 UTC

This package is auto-updated.

Last update: 2024-04-06 11:27:15 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