annotate vendor/symfony/var-dumper/Caster/AmqpCaster.php @ 19:fa3358dc1485 tip

Add ndrum files
author Chris Cannam
date Wed, 28 Aug 2019 13:14:47 +0100
parents 129ea1e6d783
children
rev   line source
Chris@0 1 <?php
Chris@0 2
Chris@0 3 /*
Chris@0 4 * This file is part of the Symfony package.
Chris@0 5 *
Chris@0 6 * (c) Fabien Potencier <fabien@symfony.com>
Chris@0 7 *
Chris@0 8 * For the full copyright and license information, please view the LICENSE
Chris@0 9 * file that was distributed with this source code.
Chris@0 10 */
Chris@0 11
Chris@0 12 namespace Symfony\Component\VarDumper\Caster;
Chris@0 13
Chris@0 14 use Symfony\Component\VarDumper\Cloner\Stub;
Chris@0 15
Chris@0 16 /**
Chris@0 17 * Casts Amqp related classes to array representation.
Chris@0 18 *
Chris@0 19 * @author Grégoire Pineau <lyrixx@lyrixx.info>
Chris@0 20 */
Chris@0 21 class AmqpCaster
Chris@0 22 {
Chris@17 23 private static $flags = [
Chris@0 24 AMQP_DURABLE => 'AMQP_DURABLE',
Chris@0 25 AMQP_PASSIVE => 'AMQP_PASSIVE',
Chris@0 26 AMQP_EXCLUSIVE => 'AMQP_EXCLUSIVE',
Chris@0 27 AMQP_AUTODELETE => 'AMQP_AUTODELETE',
Chris@0 28 AMQP_INTERNAL => 'AMQP_INTERNAL',
Chris@0 29 AMQP_NOLOCAL => 'AMQP_NOLOCAL',
Chris@0 30 AMQP_AUTOACK => 'AMQP_AUTOACK',
Chris@0 31 AMQP_IFEMPTY => 'AMQP_IFEMPTY',
Chris@0 32 AMQP_IFUNUSED => 'AMQP_IFUNUSED',
Chris@0 33 AMQP_MANDATORY => 'AMQP_MANDATORY',
Chris@0 34 AMQP_IMMEDIATE => 'AMQP_IMMEDIATE',
Chris@0 35 AMQP_MULTIPLE => 'AMQP_MULTIPLE',
Chris@0 36 AMQP_NOWAIT => 'AMQP_NOWAIT',
Chris@0 37 AMQP_REQUEUE => 'AMQP_REQUEUE',
Chris@17 38 ];
Chris@0 39
Chris@17 40 private static $exchangeTypes = [
Chris@0 41 AMQP_EX_TYPE_DIRECT => 'AMQP_EX_TYPE_DIRECT',
Chris@0 42 AMQP_EX_TYPE_FANOUT => 'AMQP_EX_TYPE_FANOUT',
Chris@0 43 AMQP_EX_TYPE_TOPIC => 'AMQP_EX_TYPE_TOPIC',
Chris@0 44 AMQP_EX_TYPE_HEADERS => 'AMQP_EX_TYPE_HEADERS',
Chris@17 45 ];
Chris@0 46
Chris@0 47 public static function castConnection(\AMQPConnection $c, array $a, Stub $stub, $isNested)
Chris@0 48 {
Chris@0 49 $prefix = Caster::PREFIX_VIRTUAL;
Chris@0 50
Chris@17 51 $a += [
Chris@0 52 $prefix.'is_connected' => $c->isConnected(),
Chris@17 53 ];
Chris@0 54
Chris@0 55 // Recent version of the extension already expose private properties
Chris@0 56 if (isset($a["\x00AMQPConnection\x00login"])) {
Chris@0 57 return $a;
Chris@0 58 }
Chris@0 59
Chris@0 60 // BC layer in the amqp lib
Chris@0 61 if (method_exists($c, 'getReadTimeout')) {
Chris@0 62 $timeout = $c->getReadTimeout();
Chris@0 63 } else {
Chris@0 64 $timeout = $c->getTimeout();
Chris@0 65 }
Chris@0 66
Chris@17 67 $a += [
Chris@0 68 $prefix.'is_connected' => $c->isConnected(),
Chris@0 69 $prefix.'login' => $c->getLogin(),
Chris@0 70 $prefix.'password' => $c->getPassword(),
Chris@0 71 $prefix.'host' => $c->getHost(),
Chris@0 72 $prefix.'vhost' => $c->getVhost(),
Chris@0 73 $prefix.'port' => $c->getPort(),
Chris@0 74 $prefix.'read_timeout' => $timeout,
Chris@17 75 ];
Chris@0 76
Chris@0 77 return $a;
Chris@0 78 }
Chris@0 79
Chris@0 80 public static function castChannel(\AMQPChannel $c, array $a, Stub $stub, $isNested)
Chris@0 81 {
Chris@0 82 $prefix = Caster::PREFIX_VIRTUAL;
Chris@0 83
Chris@17 84 $a += [
Chris@0 85 $prefix.'is_connected' => $c->isConnected(),
Chris@0 86 $prefix.'channel_id' => $c->getChannelId(),
Chris@17 87 ];
Chris@0 88
Chris@0 89 // Recent version of the extension already expose private properties
Chris@0 90 if (isset($a["\x00AMQPChannel\x00connection"])) {
Chris@0 91 return $a;
Chris@0 92 }
Chris@0 93
Chris@17 94 $a += [
Chris@0 95 $prefix.'connection' => $c->getConnection(),
Chris@0 96 $prefix.'prefetch_size' => $c->getPrefetchSize(),
Chris@0 97 $prefix.'prefetch_count' => $c->getPrefetchCount(),
Chris@17 98 ];
Chris@0 99
Chris@0 100 return $a;
Chris@0 101 }
Chris@0 102
Chris@0 103 public static function castQueue(\AMQPQueue $c, array $a, Stub $stub, $isNested)
Chris@0 104 {
Chris@0 105 $prefix = Caster::PREFIX_VIRTUAL;
Chris@0 106
Chris@17 107 $a += [
Chris@0 108 $prefix.'flags' => self::extractFlags($c->getFlags()),
Chris@17 109 ];
Chris@0 110
Chris@0 111 // Recent version of the extension already expose private properties
Chris@0 112 if (isset($a["\x00AMQPQueue\x00name"])) {
Chris@0 113 return $a;
Chris@0 114 }
Chris@0 115
Chris@17 116 $a += [
Chris@0 117 $prefix.'connection' => $c->getConnection(),
Chris@0 118 $prefix.'channel' => $c->getChannel(),
Chris@0 119 $prefix.'name' => $c->getName(),
Chris@0 120 $prefix.'arguments' => $c->getArguments(),
Chris@17 121 ];
Chris@0 122
Chris@0 123 return $a;
Chris@0 124 }
Chris@0 125
Chris@0 126 public static function castExchange(\AMQPExchange $c, array $a, Stub $stub, $isNested)
Chris@0 127 {
Chris@0 128 $prefix = Caster::PREFIX_VIRTUAL;
Chris@0 129
Chris@17 130 $a += [
Chris@0 131 $prefix.'flags' => self::extractFlags($c->getFlags()),
Chris@17 132 ];
Chris@0 133
Chris@0 134 $type = isset(self::$exchangeTypes[$c->getType()]) ? new ConstStub(self::$exchangeTypes[$c->getType()], $c->getType()) : $c->getType();
Chris@0 135
Chris@0 136 // Recent version of the extension already expose private properties
Chris@0 137 if (isset($a["\x00AMQPExchange\x00name"])) {
Chris@0 138 $a["\x00AMQPExchange\x00type"] = $type;
Chris@0 139
Chris@0 140 return $a;
Chris@0 141 }
Chris@0 142
Chris@17 143 $a += [
Chris@0 144 $prefix.'connection' => $c->getConnection(),
Chris@0 145 $prefix.'channel' => $c->getChannel(),
Chris@0 146 $prefix.'name' => $c->getName(),
Chris@0 147 $prefix.'type' => $type,
Chris@0 148 $prefix.'arguments' => $c->getArguments(),
Chris@17 149 ];
Chris@0 150
Chris@0 151 return $a;
Chris@0 152 }
Chris@0 153
Chris@0 154 public static function castEnvelope(\AMQPEnvelope $c, array $a, Stub $stub, $isNested, $filter = 0)
Chris@0 155 {
Chris@0 156 $prefix = Caster::PREFIX_VIRTUAL;
Chris@0 157
Chris@0 158 $deliveryMode = new ConstStub($c->getDeliveryMode().(2 === $c->getDeliveryMode() ? ' (persistent)' : ' (non-persistent)'), $c->getDeliveryMode());
Chris@0 159
Chris@0 160 // Recent version of the extension already expose private properties
Chris@0 161 if (isset($a["\x00AMQPEnvelope\x00body"])) {
Chris@0 162 $a["\0AMQPEnvelope\0delivery_mode"] = $deliveryMode;
Chris@0 163
Chris@0 164 return $a;
Chris@0 165 }
Chris@0 166
Chris@0 167 if (!($filter & Caster::EXCLUDE_VERBOSE)) {
Chris@17 168 $a += [$prefix.'body' => $c->getBody()];
Chris@0 169 }
Chris@0 170
Chris@17 171 $a += [
Chris@0 172 $prefix.'delivery_tag' => $c->getDeliveryTag(),
Chris@0 173 $prefix.'is_redelivery' => $c->isRedelivery(),
Chris@0 174 $prefix.'exchange_name' => $c->getExchangeName(),
Chris@0 175 $prefix.'routing_key' => $c->getRoutingKey(),
Chris@0 176 $prefix.'content_type' => $c->getContentType(),
Chris@0 177 $prefix.'content_encoding' => $c->getContentEncoding(),
Chris@0 178 $prefix.'headers' => $c->getHeaders(),
Chris@0 179 $prefix.'delivery_mode' => $deliveryMode,
Chris@0 180 $prefix.'priority' => $c->getPriority(),
Chris@0 181 $prefix.'correlation_id' => $c->getCorrelationId(),
Chris@0 182 $prefix.'reply_to' => $c->getReplyTo(),
Chris@0 183 $prefix.'expiration' => $c->getExpiration(),
Chris@0 184 $prefix.'message_id' => $c->getMessageId(),
Chris@0 185 $prefix.'timestamp' => $c->getTimeStamp(),
Chris@0 186 $prefix.'type' => $c->getType(),
Chris@0 187 $prefix.'user_id' => $c->getUserId(),
Chris@0 188 $prefix.'app_id' => $c->getAppId(),
Chris@17 189 ];
Chris@0 190
Chris@0 191 return $a;
Chris@0 192 }
Chris@0 193
Chris@0 194 private static function extractFlags($flags)
Chris@0 195 {
Chris@17 196 $flagsArray = [];
Chris@0 197
Chris@0 198 foreach (self::$flags as $value => $name) {
Chris@0 199 if ($flags & $value) {
Chris@0 200 $flagsArray[] = $name;
Chris@0 201 }
Chris@0 202 }
Chris@0 203
Chris@0 204 if (!$flagsArray) {
Chris@17 205 $flagsArray = ['AMQP_NOPARAM'];
Chris@0 206 }
Chris@0 207
Chris@0 208 return new ConstStub(implode('|', $flagsArray), $flags);
Chris@0 209 }
Chris@0 210 }