montefuscolo/php-mediator

This package is abandoned and no longer maintained. No replacement package was suggested.

A class to provide hooks as actions and filters

1.0 2018-05-15 20:41 UTC

This package is auto-updated.

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


README

It is just another Hook system. It is useful to integrate very distinct components of software without making them too coupled to each other.

Installing

composer require montefuscolo/php-mediator

Using it

Actions

<?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');

Filters

<?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