1. Go to this page and download the library: Download jardisadapter/messaging 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/ */
jardisadapter / messaging example snippets
use JardisAdapter\Messaging\MessagePublisher;
use JardisAdapter\Messaging\MessageConsumer;
use JardisAdapter\Messaging\Factory\ConnectionFactory;
use JardisAdapter\Messaging\Factory\PublisherFactory;
use JardisAdapter\Messaging\Factory\ConsumerFactory;
use JardisAdapter\Messaging\Handler\CallbackHandler;
$connFactory = new ConnectionFactory();
$pubFactory = new PublisherFactory();
$conFactory = new ConsumerFactory();
// Create and share a Redis connection
$redisConn = $connFactory->redis('localhost', 6379);
// Publish
$publisher = new MessagePublisher($pubFactory->redis($redisConn));
$publisher->publish('orders', ['order_id' => 42, 'total' => 99.99]);
// Consume
$consumer = new MessageConsumer($conFactory->redis($redisConn));
$consumer->consume('orders', new CallbackHandler(function (string|array $message, array $metadata): bool {
// $message = ['order_id' => 42, 'total' => 99.99] (auto-deserialized)
return true; // true = ACK, false = reject/requeue
}));
$primary = $connFactory->redis('redis-primary');
$secondary = $connFactory->redis('redis-secondary');
$publisher = new MessagePublisher(
$pubFactory->redis($primary), // tried first
$pubFactory->redis($secondary), // fallback if primary fails
);
$publisher->publish('orders', ['order_id' => 42]);
$redisConn = $connFactory->redis('localhost', 6379);
// Pub/Sub (default)
$publisher = new MessagePublisher($pubFactory->redis($redisConn));
// Streams
$publisher = new MessagePublisher($pubFactory->redis($redisConn, useStreams: true));
// Consumer groups (Streams only)
$consumer = new MessageConsumer($conFactory->redis($redisConn, useStreams: true));
$consumer->consume('orders', $handler, [
'group' => 'order-processors', // auto-created if missing
'consumer' => 'worker-1',
'block' => 5000,
'count' => 1,
]);
// Producer
$kafkaConn = $connFactory->kafka('kafka:9092');
$publisher = new MessagePublisher($pubFactory->kafka($kafkaConn));
$publisher->publish('invoices', ['invoice_id' => 7], ['key' => 'partition-key']);
// Consumer (groupId is part of connection)
$kafkaConsumerConn = $connFactory->kafkaConsumer('kafka:9092', 'invoice-processor');
$consumer = new MessageConsumer($conFactory->kafka($kafkaConsumerConn));
$consumer->consume('invoices', $handler);