<?php

use RabbitMq\ManagementApi\Client;
require_once __DIR__ . '/vendor/autoload.php';
$baseUrl = 'http://rabbitmq.integ8.lafourchette.io:15672';
$username = '******';
$password = '******';
$vhost = '/tmp_vhost';
$exchange = 'tmp_exchange';
$queueTemplate = 'queue.{modulus}';
$routingTemplate = 'message.1.{modulus}.#';
$nbShard = 10;
$client = new Client(null, $baseUrl, $username, $password);
$client->vhosts()->create($vhost);
$client->permissions()->create($vhost, $username, array("configure" => ".*", "write" => ".*", "read" => ".*"));
$client->exchanges()->create($vhost, $exchange, array('type' => 'topic'));
for ($i = 0; $i < $nbShard; $i++) {
    $queue = modulus($queueTemplate, $i);
    $client->queues()->create($vhost, $queue, array('type' => 'topic'));
    $client->bindings()->create($vhost, $exchange, $queue, modulus($routingTemplate, $i));
}
function modulus($template, $modulus)
{
    return strtr($template, array('{modulus}' => $modulus));
}