slim3-annotation
Define routes and controllers with annotations for Slim 3, (*1)
Installation
Via Composer, (*2)
composer require dilsonjlrjr/slim3-annotation
Initialization
In file public/index.php add:, (*3)
<?php
$pathController = __DIR__ . '/../Controller';
\Slim3\Annotation\Slim3Annotation::create($app, $pathController, '');
The attribute $app is an instance of \Slim\App., (*4)
The attribute $pathController is the location of the controllers in the application., (*5)
Annotations Route
Defining Controller - Example
<?php
/**
* @Route("/prefix")
*/
class ClassController {
/**
* @Get(name="/rota2/{id}", alias="rote.id")
*/
public function method() {
}
}
In creating a controller you can define grouping of routes, verbs, routes, aliases and middlewares., (*6)
Routes
Get - Example
<?php
/**
* @Get(name="/rota2", alias="rote.id")
*/
public function method() {
}
Post - Example
<?php
/**
* @Post(name="/rota2/{id}", alias="rote.id")
*/
public function method() {
}
Put - Example
<?php
/**
* @Put(name="/rota2/{id}", alias="rote.id")
*/
public function method() {
}
Delete - Example
<?php
/**
* @Put(name="/rota2/{id}", alias="rote.id")
*/
public function method() {
}
The alias use is optional., (*7)
Regular expressions can be used in the creation of routes. All route controls can be seen in the Slim framework documentation: Router., (*8)
Route Groups
<?php
/**
* @Route("/prefix")
*/
class ClassController {
/**
* @Get(name="/rota2/{id}", alias="rote.id")
*/
public function method() {
}
}
Route groups only work on the controller header., (*9)
In the example above the route will be created as below:, (*10)
http://localhost/prefix/rota2/1
Middleware
<?php
/*
* @Get(name="/rota2", alias="rote.id", middleware={"Test\Middleware\ExampleMiddleware"})
*/
public function method() {
}
/**
* @Get(name="/rota3", alias="rote.id", middleware={"Test\Middleware\ValidateMiddleware", "Test\Middleware\ExampleMiddleware"})
*/
public function method() {
}
A route can incorporate several middlewares. How to create a middleware is available in the Slim framework documentation: Middleware., (*11)