codememory/event-dispatcher 问题修复 & 功能扩展

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

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

codememory/event-dispatcher

Composer 安装命令:

composer require codememory/event-dispatcher

包简介

di

README 文档

README

Установка

composer require codememory/event-dispatcher

Обзор конфигурации

# configs/event.yaml

event:
  # Settings events
  pathWithEvents: App/Events       # Path with all events
  eventNamespace: App\Events       # Namespace events
  eventSuffix: Event               # Suffix for filename event
  
  # Settings listeners
  pathWithListeners: App/Listeners # Path with all event listeners
  listenerNamespace: App\Listeners # Namespace event listeners
  listenerSuffix: Listener         # Suffix for filename listener

Если используется конфигурация, выполните следующие команды

  • Создать глобальную конфигурацию, если ее не существует
    • php vendor/bin/gc-cdm g-config:init
  • Merge всей конфигурации
    • php vendr/bin/gc-cdm g-config:merge --all

Примеры использования

Класс события

<?php

namespace App\Events;

use Codememory\Components\Event\Interfaces\EventInterface;

class OutputTextEvent implements EventInterface
{

    /**
     * @inheritDoc
     */
    public function getListeners() : array
    {
        
        return [];
        
    }

}

Добавление события и слушателя

<?php

use Codememory\Components\Event\EventDispatcher;
use App\Events\OutputTextEvent;

require_once 'vendor/autoload.php';

$eventDispatcher = new EventDispatcher();

$eventDispatcher->addEvent(OutputTextEvent::class)
    ->addListener(function (OutputTextEvent $event) {
        echo 123;
    });

Выброс событий

use Codememory\Components\Event\Dispatcher;

$dispatcher = new Dispatcher();

$dispatcher->dispatch(OutputTextEvent::class);

// 123

Event(EventBuilderInterface) методы

  • setAlias(): EventBuilderInterface Добавить alias к событию

    • string $alias
  • addListener(): EventBuilderInterface Добавить слушателя к событию

    • string|callable $listener - namespace или callback слушателя
  • setParameters(): EventBuilderInterface Добавить параметры, которые будут переданы в конструктор события

    • array $parameters

Event(EventDataInterface) методы

  • getNamespace(): string Возвращает namespace события

  • getReflector(): ReflectionClass Возвращает рефлектор события

  • getListeners(): array Возвращает массив слушателей события

  • getParameters(): array Возвращает параметры для события

EventDispatcher методы

  • addEvent(): EventBuilderInterface Добавить новое событие

  • addEventListener(): EventDispatcherInterface Добавить слушателя для события

    • string $eventName - namespace или alias события
    • string|callable $listener
  • existEvent(): bool Проверить существование события

    • string $eventName - namespace или alias события
  • getEvent(): EventInterface Получить событие

    • string $eventName - namespace или alias события
  • getEventListeners(): array Возвращает массив слушателей события

    • string $eventName - namespace или alias события

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-08-22

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固