PHP code example of unwahas / broadcast

1. Go to this page and download the library: Download unwahas/broadcast 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/ */

    

unwahas / broadcast example snippets


namespace App\Http\Controllers\Experiment;

use App\Http\Controllers\Controller;
use Unwahas\Broadcast\Services\RabbitMQService;
use Illuminate\Http\Request;
use Illuminate\Support\Str;

class BroadcastController extends Controller
{
    public function __construct(
        protected RabbitMQService $rabbitMQService
    ) {}

    public function sendData(Request $request)
    {
        $validated = $request->validate([
            'email'          => 'r_depan'    => $validated['gelar_depan'],
            'gelar_belakang' => $validated['gelar_belakang'],
            'sent_at'        => now()->toDateTimeString(),
        ], from: 'sikawan');

        return response()->json([
            'status'  => 'success',
            'message' => 'Data broadcasted successfully!',
        ]);
    }
}

$this->rabbitMQService->exchange(
    data: ['id' => 1, 'nama' => 'Budi'],
    from: 'sikawan',
    item: 'Biodata',
    exchange: 'laravel_exchange_sikawan' // opsional, default ke config
);

$this->rabbitMQService->queue(
    data: ['id' => 1, 'nama' => 'Budi'],
    from: 'sikawan',
    item: 'Biodata',
    queue: 'laravel_queue_dosen_sikawan' // opsional, default ke config
);

use Unwahas\Broadcast\Facades\RabbitMqBroadcast;

RabbitMqBroadcast::sendDosen([
    'id'    => (string) Str::uuid(),
    'email' => '[email protected]',
    'nama'  => 'Dr. Budi Santoso, M.Kom',
]);

'consumers' => [
    [
        'from' => 'sikawan',
        'exchange' => 'laravel_exchange_sikawan',
        'queue' => 'laravel_queue_dosen_sikawan',
        'items' => [
            'Biodata' => [\App\Services\DosenService::class, 'updateDosenConsumer'],
        ],
    ],
    [
        'from' => 'simawa',
        'exchange' => 'laravel_exchange_simawa',
        'queue' => 'laravel_queue_sikawan_simawa',
        'items' => [
            'Mahasiswa' => [\App\Services\MahasiswaService::class, 'updateMahasiswaConsumer'],
        ],
    ],
],

namespace App\Services;

class DosenService
{
    public function updateDosenConsumer(array $data, array $rawPayload = []): void
    {
        // $data berisi ['id' => '...', 'email' => '...', 'nama' => '...']
        \Log::info('Dosen received:', $data);
    }
}
bash
php artisan vendor:publish --tag=rabbitmq-broadcast-config
bash
# Menjalankan seluruh antrean yang terdaftar
php artisan rabbitmq:consume

# Menjalankan sender tertentu saja
php artisan rabbitmq:consume --from=sikawan