1. Go to this page and download the library: Download rabbitevents/publisher 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/ */
rabbitevents / publisher example snippets
use App\Payment;
use App\User;
use RabbitEvents\Publisher\ShouldPublish;
use RabbitEvents\Publisher\Support\Publishable;
class PaymentSucceededRabbitEvent implements ShouldPublish
{
use Publishable;
public function __construct(private User $user, private Payment $payment)
{
}
public function publishEventKey(): string
{
return 'payment.succeeded';
}
public function toPublish(): mixed
{
return [
'user' => $this->user->toArray(),
'payment' => $this->payment->toArray(),
];
}
}
$payment = new Payment(...);
// ...
PaymentSucceededRabbitEvent::publish($request->user(), $payment);
$event = new PaymentSucceededEvent($request->user(), $payment);
event($event)
publish($event);
use App\Messages\AccountCreated; // Generated Protobuf class
$message = new AccountCreated(['id' => 123, 'name' => 'John']);
publish('account.created', $message);
namespace App\BroadcastEvents;
use RabbitEvents\Publisher\ShouldPublish;
use RabbitEvents\Publisher\Support\Publishable;
use RabbitEvents\Publisher\Support\PublishableEventTesting;
class Event implements ShouldPublish
{
use Publishable;
use PublishableEventTesting;
public function __construct(private array $payload)
{
}
public function publishEventKey(): string
{
return 'something.happened';
}
public function toPublish(): array
{
return $this->payload;
}
}
use \App\RabbitEvents\Event;
use \App\RabbitEvents\AnotherEvent;
Event::fake();
$payload = [
'key1' => 'value1',
'key2' => 'value2',
];
Event::publish($payload);
Event::assertPublished('something.happened', $payload);
AnotherEvent::assertNotPublished();
bash
php artisan rabbitevents:install
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.