1. Go to this page and download the library: Download thesis/amqp 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/ */
thesis / amqp example snippets
declare(strict_types=1);
use Thesis\Amqp\Config;
$config = Config::fromURI('amqp://guest:guest@localhost:5672/');
declare(strict_types=1);
use Thesis\Amqp\Config;
$config = Config::fromURI('amqp://guest:guest@localhost:5672,localhost:5673/');
declare(strict_types=1);
use Thesis\Amqp\Config;
$config = new Config(
urls: ['localhost:5672'],
user: 'guest',
vhost: '/test',
authMechanisms: ['plain', 'amqplain'],
);
declare(strict_types=1);
use Thesis\Amqp\Config;
$config = Config::default(); // amqp://guest:guest@localhost:5672/
declare(strict_types=1);
use Thesis\Amqp\Config;
use Thesis\Amqp\Client;
$client = new Client(Config::default());
// your code here
$client->disconnect();
declare(strict_types=1);
use Thesis\Amqp\Config;
use Thesis\Amqp\Client;
$client = new Client(Config::default());
$channel = $client->channel();
$channel->close();
$client->disconnect();
declare(strict_types=1);
use Thesis\Amqp\Config;
use Thesis\Amqp\Client;
use Thesis\Amqp\Message;
use Thesis\Amqp\DeliveryMode;
use Thesis\Time\TimeSpan;
$client = new Client(Config::default());
$channel = $client->channel();
$channel->publish(new Message(
body: '...',
headers: ['x' => 'y'],
contentType: 'application/json',
contentEncoding: 'json',
deliveryMode: DeliveryMode::Persistent,
expiration: TimeSpan::fromSeconds(5),
));
declare(strict_types=1);
use Thesis\Amqp\Config;
use Thesis\Amqp\Client;
use Thesis\Amqp\DeliveryMessage;
use Thesis\Amqp\Channel;
$client = new Client(Config::default());
$channel = $client->channel();
$handler = function (DeliveryMessage $delivery) use ($httpclient): void {
// handle the delivery with an \Exception
$delivery->nack();
};
$delivery = $channel->get('test');
\assert($delivery !== null);
try {
$handler($delivery);
} finally {
$delivery->ack();
}
declare(strict_types=1);
use Thesis\Amqp\Client;
use Thesis\Amqp\Message;
use Thesis\Amqp\Config;
firmation = $channel->publish(new Message('...'), routingKey: 'test');
var_dump($confirmation?->await());
$client->disconnect();
declare(strict_types=1);
use Thesis\Amqp\Client;
use Thesis\Amqp\PublishConfirmation;
use Thesis\Amqp\Message;
use Thesis\Amqp\Config;
nfirmations = [];
for ($i = 0; $i < 100; ++$i) {
$confirmation = $channel->publish(new Message('...'), routingKey: 'test');
\assert($confirmation !== null);
$confirmations[] = $confirmation;
}
PublishConfirmation::awaitAll($confirmations);
$client->disconnect();
declare(strict_types=1);
use Thesis\Amqp\Client;
use Thesis\Amqp\Config;
use Thesis\Amqp\Message;
use Thesis\Amqp\PublishResult;
$confirmation = $channel->publish(new Message('abz'), routingKey: 'xxx', mandatory: true);
if ($confirmation?->await() === PublishResult::Unrouted) {
// handle use case
}
declare(strict_types=1);
use Thesis\Amqp\Client;
use Thesis\Amqp\Config;
use Thesis\Amqp\DeliveryMessage;
use Thesis\Amqp\Message;
use function Amp\trapSignal;
delivery->reply(new Message("Request '{$delivery->message->body}' handled."));
},
queue: 'some_queue',
noAck: true,
);
trapSignal([\SIGINT, \SIGTERM]);
$client->disconnect();
declare(strict_types=1);
use Thesis\Amqp\Client;
use Thesis\Amqp\Config;
use Thesis\Amqp\RpcConfig;
use Thesis\Time\TimeSpan;
use Thesis\Amqp\Rpc;
$client = new Client(Config::default());
$rpc = new Rpc($client, new RpcConfig(timeout: TimeSpan::fromSeconds(5)));
declare(strict_types=1);
use Amp\TimeoutCancellation;
use Thesis\Amqp\Message;
echo $rpc
->request(
message: new Message("Request#{$i}"),
routingKey: 'some_queue',
cancellation: new TimeoutCancellation(2),
)
->body;
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.