承接 berlioz/event-manager 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

berlioz/event-manager

最新稳定版本:v1.1.0

Composer 安装命令:

composer require berlioz/event-manager

包简介

PHP event manager/dispatcher, respecting PSR-14 (Event Dispatcher) standard.

README 文档

README

Latest Version Software license Build Status Quality Grade Total Downloads

Berlioz Event Manager is a PHP event manager/dispatcher, respecting PSR-14 (Event Dispatcher) standard.

For more information, and use of Berlioz Framework, go to website and online documentation : https://getberlioz.com

Installation

Composer

You can install Berlioz Event Manager with Composer, it's the recommended installation.

$ composer require berlioz/event-manager

Dependencies

  • PHP ^8.0
  • Packages:
    • psr/event-dispatcher

Usage

Dispatcher

To initialize the event dispatcher:

use Berlioz\EventManager\EventDispatcher;

$dispatcher = new EventDispatcher();

To listen an event:

use Berlioz\EventManager\EventDispatcher;

$callback = function($event) {
    // Do something
    return $event;
};

/** @var EventDispatcher $dispatcher */

// A named event
$dispatcher->addEventListener('event.name', $callback);

// Your event object
$dispatcher->addEventListener(MyEvent::class, $callback);

To dispatch an event:

/** @var EventDispatcher $dispatcher */
use Berlioz\EventManager\Event\CustomEvent;
use Berlioz\EventManager\EventDispatcher;

// A named event
$dispatcher->dispatch(new CustomEvent('event.name'));

// Your event object
$dispatcher->dispatch(new MyEvent());

Priority

You can define a priority in your listeners. The highest priority is in the first executions.

use Berlioz\EventManager\Listener\ListenerInterface;

/** ... */

// Normal priority (0)
$dispatcher->addEventListener('event.name', $callback, ListenerInterface::PRIORITY_NORMAL);
// High priority (100)
$dispatcher->addEventListener('event.name', $callback, ListenerInterface::PRIORITY_HIGH);
// Low priority (-100)
$dispatcher->addEventListener('event.name', $callback, ListenerInterface::PRIORITY_LOW);

The priority argument is an integer ; you can so define your priority with integer value instead of constant.

Add delegate dispatcher

You can delegate dispatch to another dispatcher who respects PSR-14. The delegated dispatchers are called after, only if event isn't stopped.

use Berlioz\EventManager\EventDispatcher;

$dispatcher = new EventDispatcher();
$dispatcher->addEventDispatcher(new MyCustomDispatcher());

Add listener provider

You can add listener providers. Providers are called in the order of addition.

use Berlioz\EventManager\EventDispatcher;

$dispatcher = new EventDispatcher();
$dispatcher->addListenerProvider(new MyListenerProvider());

Default listener

The default listener is \Berlioz\EventManager\Listener\Listener. You can define your own default provider, he must implement \Berlioz\EventManager\Listener\ListenerInterface interface.

To declare this into the dispatcher:

use Berlioz\EventManager\EventDispatcher;
use Berlioz\EventManager\Provider\ListenerProvider;$myDefaultProvider = new ListenerProvider();

$dispatcher = new EventDispatcher(defaultProvider: $myDefaultProvider);

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-04-01