2017 © Pedro Peláez
 

library evento

Dead simple event management for your Laravel application

image

koalabs/evento

Dead simple event management for your Laravel application

  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 4 Versions
  • 0 % Grown

The README.md

Laravel Evento

Dead simple event management for your Laravel application. This is just our way of managing events. Use with care., (*1)

NOTE: Most of the code is inspired on Jeffrey Way's awesome Laracasts series., (*2)

Installation

You know this one already., (*3)

In your application's root directory, open up the composer.json file and add the package to the require section so it looks like this:, (*4)

"require": {
    "koalabs/evento": "1.*"
},

Open the command line, and in the root of your application, run the Composer update like this:, (*5)

php composer.phar update

Now let's add the Evento Service Provider. Open the app/config/app.php file and in the providers array, add the following line:, (*6)

'Koalabs\Evento\EventoServiceProvider'

Optionally, you may want to add the Facade for beautiful Laravel-friendly semantics. In your aliases array in the same app configuration file, add:, (*7)

'Evento' => 'Koalabs\Evento\Facades\Evento'

Usage

The way I picture myself using this is directly on the controllers. Using it alongside a repository pattern or even in your models is also valid., (*8)

Now imagine you were creating an application for managing a podcasts directory. You'd have a PodcastsController with all the usual CRUD methods. For the sake of simplicity, let's only look at the store method. It could look something like this:, (*9)

/**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
public function store()
{
    $input = Input::only('title', 'subtitle', 'author');

    $podcast = Podcast::create($input);

    Evento::fire(new PodcastAdded($podcast));
}
  ```

Now it is most likely you'll want to create a folder in which to keep all your events. I'd call this the *Events* folder. The `PodcastAdded` class is an example for how to name your events inside that folder.

### Listening for the events
After raising the events, you will then want to listen to them. For this, Evento provides you with a handy class: **EventListener**. To use it you'll simply have to extend it:

```php

use Koalabs\Evento\EventListener;
use Podcasts\Events\PodcastAdded;

class EmailNotifier extends EventListener {

  public function whenPodcastAdded(PodcastAdded $podcast)
  {
    // Do some stuff here
  }

}

It's important to note the naming convention: Every method handling an event has to start with the word when., (*10)

One nice little trick

You can automate much of your Event listening with a Service Provider of your own. Try this (maybe inside a Listeners folder or something):, (*11)


use Illuminate\Support\ServiceProvider; class ListenerServiceProvider extends ServiceProvider { /** * Register the service provider * * @return void */ public function register() { $listeners = $this->app['config']->get('evento::listeners'); foreach ($listeners as $listener) { $this->app['events']->listen('Habitat.*', $listener); } } }

Oh and don't forget to export the configuration files.:, (*12)

php artisan config:publish koalabs/evento, (*13)

The Versions

10/10 2014

dev-master

9999999-dev

Dead simple event management for your Laravel application

  Sources   Download

MIT

The Requires

 

10/10 2014

1.0.2

1.0.2.0

Dead simple event management for your Laravel application

  Sources   Download

MIT

The Requires

 

10/10 2014

1.0.1

1.0.1.0

Dead simple event management for your Laravel application

  Sources   Download

MIT

The Requires

 

10/10 2014

1.0.0

1.0.0.0

Dead simple event management for your Laravel application

  Sources   Download

MIT

The Requires