koalabs/evento 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

koalabs/evento

Composer 安装命令:

composer require koalabs/evento

包简介

Dead simple event management for your Laravel application

README 文档

README

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

NOTE: Most of the code is inspired on Jeffrey Way's awesome Laracasts series.

Installation

You know this one already.

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:

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

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

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:

'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:

'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.

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:

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

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.

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):

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.:

php artisan config:publish koalabs/evento

统计信息

  • 总下载量: 22
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 4
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2014-10-09

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固