示例#1
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
use PHPFluent\EventManager\Event;
use PHPFluent\EventManager\Listener;
use PHPFluent\EventManager\Manager;
class MyListener implements Listener
{
    public function execute(Event $event, array $params = array())
    {
        echo 'For event "' . $event->getName() . '" I will display the params:' . PHP_EOL;
        echo json_encode($params) . PHP_EOL;
    }
}
$eventManager = new Manager();
$eventManager->addEventListener('bar', new MyListener());
$eventManager->dispatchEvent('bar', array('Henrique Moody', 'Kinn Coelho'));
示例#2
0
}
require_once __DIR__ . '/../vendor/autoload.php';
use PHPFluent\EventManager\Manager;
use PHPFluent\EventManager\Listener\PThread;
/**
 * Personalized Thread class
 * @see http://php.net/pthreads
 * @see http://php.net/class.thread
 */
class MyThread extends \Thread
{
    /**
     * the script process to run in background
     */
    public function run()
    {
        echo "-thread.start: " . date('H:i:s') . PHP_EOL;
        sleep(5);
        echo "-thread...end: " . date('H:i:s') . PHP_EOL;
    }
}
// create the listener
$listener = new PThread(new MyThread());
$manager = new Manager();
$manager->addEventListener('thread', $listener);
// dispatch listener in background.
$manager->dispatchEvent('thread');
//continue executing
echo '* Script Execution Continued...' . PHP_EOL;
//sleep(2);
echo '* Script Execution Finished!' . PHP_EOL;
示例#3
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
use PHPFluent\EventManager\Manager;
$eventManager = new Manager();
$eventManager->addEventListener("updated", function () {
    echo "updated\n";
});
$eventManager->addEventListener("updated", function () {
    file_put_contents("sample.txt", (new DateTime())->format("m/d/Y"));
    echo "Wrote sample.txt\n";
});
$eventManager->addEventListener("remove.file.sample.txt", function (array $params) {
    unlink("sample.txt");
    $date = array_shift($params);
    echo "Deleted sample.txt at {$date}\n";
});
示例#4
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
use PHPFluent\EventManager\Event;
use PHPFluent\EventManager\Manager;
$eventManager = new Manager();
$eventManager->addEventListener('bar', function (Event $event) {
    echo 'I will stop event propagation! >:(' . PHP_EOL;
    $event->stopPropagation();
});
$eventManager->addEventListener('bar', function (Event $event) {
    echo 'I will not be executed :(' . PHP_EOL;
});
// Dispatch event
$eventManager->dispatchEvent('bar');
示例#5
0
function someFunction(Manager $eventManager)
{
    echo "I'm executing\n";
    echo "Some operation\n";
    $eventManager->dispatchEvent("updated");
}
示例#6
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
use PHPFluent\EventManager\Manager;
use PHPFluent\EventManager\Listener\Process;
// Create a process to be executed in background.
// Parameter can be callable or Arara\Process\Action\Action instance.
$process = new Process(function () {
    echo "-process.start: " . date('H:i:s') . PHP_EOL;
    sleep(5);
    echo "-process...end: " . date('H:i:s') . PHP_EOL;
});
$manager = new Manager();
$manager->addEventListener('process', $process);
// dispatch a non-blocking execution
$manager->dispatchEvent('process');
// continue executing
echo '* Script Execution Continued...' . PHP_EOL;
sleep(1.5);
echo '* Script Execution Finished!' . PHP_EOL;
示例#7
0
<?php

require_once __DIR__ . '/../vendor/autoload.php';
use PHPFluent\EventManager\Event;
use PHPFluent\EventManager\Manager;
$eventManager = new Manager();
// Use no argument
$eventManager->addEventListener('foo', function () {
    echo 'Listener 1' . PHP_EOL;
});
// Use `Event` as first argument
$eventManager->addEventListener('foo', function (Event $event) {
    echo 'Listener 2: ' . $event->getName() . PHP_EOL;
});
// Use `Event` as first argument and an array as seccond
$eventManager->addEventListener('foo', function (Event $event, array $params) {
    echo 'Listener 3: ' . $event->getName() . ', ' . json_encode($params) . PHP_EOL;
});
// Use an array as first argument
$eventManager->addEventListener('foo', function (array $params) {
    echo 'Listener 4: ' . json_encode($params) . PHP_EOL;
});
// Use an array as first argument and `Event` as seccond
$eventManager->addEventListener('foo', function (array $params, Event $event) {
    echo 'Listener 3: ' . json_encode($params) . ', ' . $event->getName() . PHP_EOL;
});
// Dispatch event
$eventManager->dispatchEvent('foo', range(1, 10));