2017 © Pedro Peláez
 

library lumen-annotations

Route and event binding annotations for Laravel Lumen

image

proai/lumen-annotations

Route and event binding annotations for Laravel Lumen

  • Tuesday, February 13, 2018
  • by markusjwetzel
  • Repository
  • 2 Watchers
  • 7 Stars
  • 198 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 2 Forks
  • 2 Open issues
  • 4 Versions
  • 2 % Grown

The README.md

Lumen Annotations

Latest Stable Version Total Downloads Latest Unstable Version License, (*1)

This package enables annotations in Laravel Lumen to define routes and event bindings., (*2)

Installation

Lumen Annotations is distributed as a composer package. So you first have to add the package to your composer.json file:, (*3)

"proai/lumen-annotations": "~1.0"

Then you have to run composer update to install the package. Once this is completed, you have to add the service provider in bootstrap/app.php:, (*4)

$app->register(ProAI\Annotations\AnnotationsServiceProvider::class);

Copy config/annotations.php from this package to your configuration directory to use a custom configuration file., (*5)

Include generated routes

Once you have run php artisan route:scan (see below), you have to include the generated routes.php file in your bootstrap/app.php file:, (*6)

require __DIR__.'/../storage/framework/routes.php';
Include generated event bindings

After you have executed php artisan event:scan (see below), you have to add the service provider to the providers array in config/app.php:, (*7)

'ProAI\Annotations\EventServiceProvider'

Usage

By using annotations you can define your routes directly in your controller classes and your event bindings directly in your event handlers (see examples for usage of annotations)., (*8)

Class Annotations

For routes:, (*9)

Annotation Description
@Controller This annotation must be set to indicate that the class is a controller class. Optional parameters prefix and middleware.
@Resource First parameter is resource name. Optional parameters only and except.
@Middleware First parameter is middleware name.

For events:, (*10)

Annotation Description
@Hears This annotation binds an event handler class to an event.
Method Annotations

For routes:, (*11)

Annotation Description
@Get,
@Post,
@Options,
@Put,
@Patch,
@Delete,
@Any
First parameter is route url. Optional parameters as and middleware.
@Middleware First parameter is middleware name.

Commands

After you have defined the routes and event bindings via annotations, you have to run the scan command:, (*12)

  • Use php artisan route:scan to register all routes.
  • Use php artisan route:clear to clear the registered routes.
  • Use php artisan event:scan to register all event bindings.
  • Use php artisan event:clear to clear the registered events.

Examples

Example #1
<?php

namespace App\Http\Controllers;

use ProAI\Annotations\Annotations as Route;

/**
 * Class annotation for UserController (belongs to all class methods).
 *
 * @Route\Controller(prefix="admin")
 */
class UserController
{
    /**
     * Method annotations for showProfile() method.
     *
     * @Route\Get("/profiles/{id}", as="profiles.show")
     * @Route\Middleware("auth")
     */
    public function showProfile()
    {
      return view('profile');
    }

}
Example #2
<?php

namespace App\Http\Controllers;

use ProAI\Annotations\Annotations as Route;

/**
 * Class annotations for resource controller CommentController (belongs to all class methods).
 *
 * @Route\Controller
 * @Route\Resource("comments", only={"create", "index", "show"})
 * @Route\Middleware("auth")
 */
class CommentController
{
    ...
}
Example #3
<?php

namespace App\Handlers\Events;

use ProAI\Annotations\Annotations\Hears;

/**
 * Annotation for event binding.
 *
 * @Hears("UserWasRegistered")
 */
class SendWelcomeMail
{
    ...
}

Support

Bugs and feature requests are tracked on GitHub., (*13)

License

This package is released under the MIT License., (*14)

The Versions

13/02 2018

dev-master

9999999-dev http://github.com/proai/lumen-annotations

Route and event binding annotations for Laravel Lumen

  Sources   Download

MIT

The Requires

 

by Markus J. Wetzel

laravel lumen annotations route event router routes event binding

30/12 2015

1.0.2

1.0.2.0 http://github.com/proai/lumen-annotations

Route and event binding annotations for Laravel Lumen

  Sources   Download

MIT

The Requires

 

by Markus J. Wetzel

laravel lumen annotations route event router routes event binding

29/11 2015

1.0.1

1.0.1.0 http://github.com/proai/lumen-route-annotations

Route Annotations for Laravel Lumen.

  Sources   Download

MIT

The Requires

 

by Markus J. Wetzel

laravel lumen annotations route router routes

27/11 2015

1.0.0

1.0.0.0 http://github.com/proai/lumen-route-annotations

Route Annotations for Laravel Lumen.

  Sources   Download

MIT

The Requires

 

by Markus J. Wetzel

laravel lumen annotations route router routes