PHP code example of superbalist / laravel-event-pubsub
1. Go to this page and download the library: Download superbalist/laravel-event-pubsub 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/ */
superbalist / laravel-event-pubsub example snippets
// the pubsub_events.translator config setting should be set to 'pubsub.events.translators.simple'
// get the event manager
$manager = app('pubsub.events');
// dispatch an event
$event = new \Superbalist\EventPubSub\Events\SimpleEvent(
'user.created',
[
'user' => [
'id' => 1456,
'first_name' => 'Joe',
'last_name' => 'Soap',
'email' => '[email protected]',
],
]
);
$manager->dispatch('events', $event);
// dispatch multiple events
$events = [
new \Superbalist\EventPubSub\Events\SimpleEvent(
'user.created',
[
'user' => [
// ...
],
]
),
new \Superbalist\EventPubSub\Events\SimpleEvent(
'user.created',
[
'user' => [
// ...
],
]
),
];
$manager->dispatchBatch('events', $events);
// listen for an event
$manager->listen('events', 'user.created', function (\Superbalist\EventPubSub\EventInterface $event) {
var_dump($event->getName());
var_dump($event->getAttribute('user'));
});
// listen for all events on the channel
$manager->listen('events', '*', function (\Superbalist\EventPubSub\EventInterface $event) {
var_dump($event->getName());
});
// all the aboce commands can also be done using the facade
PubSubEvents::dispatch('events', $event);
// the pubsub_events.translator config setting should be set to 'pubsub.events.translators.topic'
// get the event manager
$manager = app('pubsub.events');
// dispatch an event
$event = new \Superbalist\EventPubSub\Events\TopicEvent(
'user',
'created',
'1.0',
[
'user' => [
'id' => 1456,
'first_name' => 'Joe',
'last_name' => 'Soap',
'email' => '[email protected]',
],
]
);
$manager->dispatch('events', $event);
// listen for an event on a topic
$manager->listen('events', 'user/created', function (\Superbalist\EventPubSub\EventInterface $event) {
// ...
});
// listen for an event on a topic matching the given version
$manager->listen('events', 'user/created/1.0', function (\Superbalist\EventPubSub\EventInterface $event) {
// ...
});
// listen for all events on a topic
$manager->listen('events', 'user/*', function (\Superbalist\EventPubSub\EventInterface $event) {
// ...
});
// listen for all events on the channel
$manager->listen('events', '*', function (\Superbalist\EventPubSub\EventInterface $event) {
// ...
});
// the pubsub_events.translator config setting should be set to 'pubsub.events.translators.schema'
// the pubsub_events.validator config setting can be set to 'pubsub.events.validators.json_schema' to take advantage of
// JSON Schema validation on incoming events
// get the event manager
$manager = app('pubsub.events');
// dispatch an event
$event = new \Superbalist\EventPubSub\Events\SchemaEvent(
'http://schemas.my-website.org/events/user/created/1.0.json',
[
'user' => [
'id' => 1456,
'first_name' => 'Joe',
'last_name' => 'Soap',
'email' => '[email protected]',
],
]
);
$manager->dispatch('events', $event);
// the listen expressions are the same as those used for TopicEvents.