Skip to content

lionphilips/slim3-annotation

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

slim3-annotation

Define Route and Controller with annotation for Slim 3

Instalation

Via Composer

composer require dilsonjlrjr/slim3-annotation

##Initialization

In file public/index.php add:

$pathController = __DIR__ . '/../Controller';

\Slim3\Annotation\Slim3Annotation::create($app, $pathController, '');

The attribute $app is an instance of \Slim\App.

The attribute $pathController is the location of the Controllers in the application.

##Annotations Route

###Defining Controller - Example

/**
 * @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.

###Routes ####Get - Example

/**
 * @Get(name="/rota2", alias="rote.id")
 */
public function method() {
}

####Post - Example

/**
 * @Post(name="/rota2/{id}", alias="rote.id")
 */
public function method() {
}

####Put - Example

/**
 * @Put(name="/rota2/{id}", alias="rote.id")
 */
public function method() {
}

####Delete - Example

/**
 * @Put(name="/rota2/{id}", alias="rote.id")
 */
public function method() {
}

The alias use is optional.

Regular expression can be used in the formation of routes. All route control can be seen in the Slim framework documentation. Router Slim

####Route Groups

/**
 * @Route("/prefix")
 */
class ClassController
{

    /**
     * @Get(name="/rota2/{id}", alias="rote.id")
     */
    public function method() {
    }
}

Route Groups only works on the Controller header.

In the example above the route will be created as below:

http://localhost/prefix/rota2/1

####Middleware

/*
 * @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

About

Define route with annotation

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • PHP 98.1%
  • ApacheConf 1.9%