PHP code example of olvlvl / delayed-event-dispatcher
1. Go to this page and download the library: Download olvlvl/delayed-event-dispatcher library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
olvlvl / delayed-event-dispatcher example snippets
use olvlvl\DelayedEventDispatcher\DelayedEventDispatcher;
/* @var \Psr\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$delayedEventDispatcher = new DelayedEventDispatcher($eventDispatcher);
use olvlvl\DelayedEventDispatcher\DelayedEventDispatcher;
/* @var \Psr\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$disabledDelayedEventDispatcher = new DelayedEventDispatcher($eventDispatcher, true);
use olvlvl\DelayedEventDispatcher\DelayedEventDispatcher;
/* @var \Psr\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$disabledDelayedEventDispatcher = new DelayedEventDispatcher(
$eventDispatcher,
filter_var(getenv('MYAPP_DISABLE_DELAYED_EVENT_DISPATCHER'), FILTER_VALIDATE_BOOLEAN)
);
use olvlvl\DelayedEventDispatcher\DelayedEventDispatcher;
/* @var DelayedEventDispatcher $delayedEventDispatcher */
$delayedEventDispatcher->dispatch($event1);
$delayedEventDispatcher->dispatch($event2);
$delayedEventDispatcher->flush();
use olvlvl\DelayedEventDispatcher\DelayedEventDispatcher;
/* @var \PhpAmqpLib\Channel\AMQPChannel $channel */
/* @var \Psr\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$messagingDelayedEventDispatcher = new DelayedEventDispatcher(
$eventDispatcher,
true,
null,
null,
function (object $event) use ($channel) {
$channel->basic_publish(json_encode($event), 'my_exchange', $event->getName());
}
);
use olvlvl\DelayedEventDispatcher\Delayable;
use olvlvl\DelayedEventDispatcher\DelayedEventDispatcher;
$arbiter = function (object $event) {
return $event instanceof Delayable;
};
/* @var \Psr\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$disabledDelayedEventDispatcher = new DelayedEventDispatcher($eventDispatcher, false, $arbiter);
use olvlvl\DelayedEventDispatcher\DelayedEventDispatcher;
/* @var \Psr\Log\LoggerInterface $logger */
$exceptionHandler = function (\Throwable $error, object $event) use ($logger) {
// The exception is recovered, we log it to fix it later
$logger->danger($error);
};
/* @var \Psr\EventDispatcher\EventDispatcherInterface $eventDispatcher */
$disabledDelayedEventDispatcher = new DelayedEventDispatcher($eventDispatcher, false, null, $exceptionHandler);
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.