定制 kanellov/php-events 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

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

kanellov/php-events

Composer 安装命令:

composer require kanellov/php-events

包简介

A simple events manager

README 文档

README

master develop
Build Status Build Status

An single instance event manager, implemented with a simple php function. It allows you to attach and detach listeners to named events, trigger events and interrupt listeners from executing.

Requirements

  • php >= 5.3

Installation

$ composer require kanellov/php-events

Basic features

  • Set priority to listeners for each event. When attaching a listener, you can set the priority by specifying an integer as the last argument. Listeners with greater priority value will be triggered first.
  • Collect listeners results when triggering an event. The return values from each listener are collected when triggering and returned in an array, ordered according to listeners.
  • Stop event from propagating. Events can be stopped at any time from listeners. Each listener receives a callable as the last argument, which prevents triggering the following listeners. The stopped flag is contained in the triggering results.
  • Wildcard event. You can use the wildcard event * to attach to all events. If priority is specified it will be used for this listener for any event triggered.

Usage

Attaching listeners

  • \Knlv\events('on', string $event_name, callable $listener[, int $priority]); registers a $listener for event $event_name
  • \Knlv\events('on', '*', callable $listener[, int priority]) registers a $listener for all events

Note: All listeners receive an extra last argument. It' s a callable that stops event propagation if called.

Triggering event

  • \Knlv\events('trigger', string $event_name [, mixed $...]); triggers the $event_name event and passes args to listeners.

Detaching listeners

  • \Knlv\events('off'); detaches all listeners
  • \Knlv\events('off', $event_name) detaches all listeners for event $event_name
  • \Knlv\events('off', $event_name, $listener) detaches a certain $listener for event $event_name

Examples

Attach listeners and trigger event

\Knlv\events('on', 'event_name', function ($value) {
    return strtolower($value);
});

\Knlv\events('on', 'event_name', function ($value) {
    return strtoupper($value);
});

$result = \Knlv\events('trigger', 'event_name', 'TEST');

var_dump($result);

/*
array(2) {
  'stopped' =>
  bool(false)
  'results' =>
  array(2) {
    [0] =>
    string(4) "test"
    [1] =>
    string(4) "TEST"
  }
}
*/

Specifying priority

\Knlv\events('on', 'event_name', function ($value) {
    return strtolower($value);
});

\Knlv\events('on', 'event_name', function ($value) {
    return strtoupper($value);
}, 10);

$result = \Knlv\events('trigger', 'event_name', 'TEST');

var_dump($result);

/*
array(2) {
  'stopped' =>
  bool(false)
  'results' =>
  array(2) {
    [0] =>
    string(4) "TEST"
    [1] =>
    string(4) "test"
  }
}
*/

Stopping event propagation

\Knlv\events('on', 'event_name', function ($value, $stop) {
    $stop();
    return strtolower($value);
});

\Knlv\events('on', 'event_name', function ($value) {
    return strtoupper($value);
});

$result = \Knlv\events('trigger', 'event_name', 'TEST');

var_dump($result);

/*
array(2) {
  'stopped' =>
  bool(true)
  'results' =>
  array(1) {
    [0] =>
    string(4) "test"
  }
}
*/

License

The php-events is licensed under the GNU GENERAL PUBLIC LICENSE Version 3. See License File for more information.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: GNU
  • 更新时间: 2016-02-07

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固