for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
namespace Puzzle\AMQP\Clients\Decorators;
use Puzzle\AMQP\Client;
use Puzzle\AMQP\WritableMessage;
use Psr\Log\LoggerAwareTrait;
class PrefixedExchangesClient implements Client
{
const
DELIMITER = '.';
use LoggerAwareTrait;
private
$client,
Only declaring a single property per statement allows you to later on add doc comments more easily.
It is also recommended by PSR2, so it is a common style that many people expect.
$client
The PSR-2 coding standard requires that all properties in a class have their visibility explicitly declared. If you declare a property using
class A { var $property; }
the property is implicitly global.
To learn more about the PSR-2, please see the PHP-FIG site on the PSR-2.
$exchangesPrefix;
public function __construct(Client $client, $exchangesPrefix)
$this->client = $client;
$this->exchangesPrefix = $exchangesPrefix;
}
public function publish($exchangeName, WritableMessage $message)
return $this->client->publish(
$this->computeExchangeName($exchangeName),
$message
);
private function computeExchangeName($exchangeName)
$exchangeParts = [];
if(! empty($this->exchangesPrefix))
$exchangeParts[] = trim($this->exchangesPrefix);
$exchangeParts[] = $exchangeName;
return trim(implode(self::DELIMITER, $exchangeParts));
public function getQueue($queueName)
return $this->client->getQueue($queueName);
public function getExchange($exchangeName)
return $this->client->getExchange($exchangeName);
Only declaring a single property per statement allows you to later on add doc comments more easily.
It is also recommended by PSR2, so it is a common style that many people expect.