montefuscolo/php-mediator

此包已废弃且不再维护。未建议替代包。

一个提供钩子作为动作和过滤器的类

1.0 2018-05-15 20:41 UTC

This package is auto-updated.

Last update: 2021-12-22 17:46:29 UTC


README

这只是另一个钩子系统。它非常有用,可以在不使组件过于耦合的情况下集成软件的不同组件。

安装

composer require montefuscolo/php-mediator

使用

动作

<?php
use montefuscolo/BaseMediator;

$mediator = new BaseMediator();

// Add callbacks to be called later
$mediator->add_action('my-channel', function() {
    echo 'Hello World' . PHP_EOL;
});
$mediator->add_action('my-channel', function() {
    echo 'Foo Bar' . PHP_EOL;
});

// .... 

$mediator->run_actions('my-channel');

过滤器

<?php
use montefuscolo/BaseMediator;

$mediator = new BaseMediator();

// Add callbacks to be called later
$mediator->add_filter('my-channel', function($n) {
    return $n * 2;
});
$mediator->add_filter('my-channel', function($n) {
    return $n * 3;
});
$mediator->add_filter('my-channel', function($n) {
    return $n - 6;
});

// .... 

echo $mediator->run_filters('my-channel', 1);
// >>> 0