Skip to content

Commit 9bc30ca

Browse files
committed
Ensure the Prototocol always get's array
1 parent 1c4ae1c commit 9bc30ca

File tree

3 files changed

+30
-28
lines changed

3 files changed

+30
-28
lines changed

PhpAmqpLib/Helper/Protocol/Protocol080.php

+12-12
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public function connectionStart($version_major = 0, $version_minor = 8, $server_
1818
$args = new AMQPWriter();
1919
$args->write_octet($version_major);
2020
$args->write_octet($version_minor);
21-
$args->write_table($server_properties);
21+
$args->write_table(empty($server_properties) ? array() : $server_properties);
2222
$args->write_longstr($mechanisms);
2323
$args->write_longstr($locales);
2424
return array(10, 10, $args);
@@ -220,7 +220,7 @@ public function channelAlert($reply_code, $reply_text = '', $details = array())
220220
$args = new AMQPWriter();
221221
$args->write_short($reply_code);
222222
$args->write_shortstr($reply_text);
223-
$args->write_table($details);
223+
$args->write_table(empty($details) ? array() : $details);
224224
return array(20, 30, $args);
225225
}
226226

@@ -282,14 +282,14 @@ public static function accessRequestOk($args)
282282
/**
283283
* @return array
284284
*/
285-
public function exchangeDeclare($ticket = 1, $exchange, $type = 'direct', $passive = false, $durable = false, $auto_delete = false, $internal = false, $nowait = false, $arguments = null)
285+
public function exchangeDeclare($ticket = 1, $exchange, $type = 'direct', $passive = false, $durable = false, $auto_delete = false, $internal = false, $nowait = false, $arguments = array())
286286
{
287287
$args = new AMQPWriter();
288288
$args->write_short($ticket);
289289
$args->write_shortstr($exchange);
290290
$args->write_shortstr($type);
291291
$args->write_bits(array($passive, $durable, $auto_delete, $internal, $nowait));
292-
$args->write_table(empty($arguments)? array():$arguments);
292+
$args->write_table(empty($arguments) ? array() : $arguments);
293293
return array(40, 10, $args);
294294
}
295295

@@ -336,13 +336,13 @@ public static function exchangeDeleteOk($args)
336336
/**
337337
* @return array
338338
*/
339-
public function queueDeclare($ticket = 1, $queue = '', $passive = false, $durable = false, $exclusive = false, $auto_delete = false, $nowait = false, $arguments = null)
339+
public function queueDeclare($ticket = 1, $queue = '', $passive = false, $durable = false, $exclusive = false, $auto_delete = false, $nowait = false, $arguments = array())
340340
{
341341
$args = new AMQPWriter();
342342
$args->write_short($ticket);
343343
$args->write_shortstr($queue);
344344
$args->write_bits(array($passive, $durable, $exclusive, $auto_delete, $nowait));
345-
$args->write_table(empty($arguments)? array():$arguments);
345+
$args->write_table(empty($arguments) ? array() : $arguments);
346346
return array(50, 10, $args);
347347
}
348348

@@ -366,15 +366,15 @@ public static function queueDeclareOk($args)
366366
/**
367367
* @return array
368368
*/
369-
public function queueBind($ticket = 1, $queue = '', $exchange, $routing_key = '', $nowait = false, $arguments = null)
369+
public function queueBind($ticket = 1, $queue = '', $exchange, $routing_key = '', $nowait = false, $arguments = array())
370370
{
371371
$args = new AMQPWriter();
372372
$args->write_short($ticket);
373373
$args->write_shortstr($queue);
374374
$args->write_shortstr($exchange);
375375
$args->write_shortstr($routing_key);
376376
$args->write_bits(array($nowait));
377-
$args->write_table(empty($arguments)? array():$arguments);
377+
$args->write_table(empty($arguments) ? array() : $arguments);
378378
return array(50, 20, $args);
379379
}
380380

@@ -449,14 +449,14 @@ public static function queueDeleteOk($args)
449449
/**
450450
* @return array
451451
*/
452-
public function queueUnbind($ticket = 1, $queue = '', $exchange, $routing_key = '', $arguments = null)
452+
public function queueUnbind($ticket = 1, $queue = '', $exchange, $routing_key = '', $arguments = array())
453453
{
454454
$args = new AMQPWriter();
455455
$args->write_short($ticket);
456456
$args->write_shortstr($queue);
457457
$args->write_shortstr($exchange);
458458
$args->write_shortstr($routing_key);
459-
$args->write_table(empty($arguments)? array():$arguments);
459+
$args->write_table(empty($arguments) ? array() : $arguments);
460460
return array(50, 50, $args);
461461
}
462462

@@ -1145,7 +1145,7 @@ public static function dtxStartOk($args)
11451145
public function tunnelRequest($meta_data)
11461146
{
11471147
$args = new AMQPWriter();
1148-
$args->write_table($meta_data);
1148+
$args->write_table(empty($meta_data) ? array() : $meta_data);
11491149
return array(110, 10, $args);
11501150
}
11511151

@@ -1213,7 +1213,7 @@ public static function testStringOk($args)
12131213
public function testTable($table, $integer_op, $string_op)
12141214
{
12151215
$args = new AMQPWriter();
1216-
$args->write_table($table);
1216+
$args->write_table(empty($table) ? array() : $table);
12171217
$args->write_octet($integer_op);
12181218
$args->write_octet($string_op);
12191219
return array(120, 30, $args);

PhpAmqpLib/Helper/Protocol/Protocol091.php

+15-15
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,7 @@ public function connectionStart($version_major = 0, $version_minor = 9, $server_
1818
$args = new AMQPWriter();
1919
$args->write_octet($version_major);
2020
$args->write_octet($version_minor);
21-
$args->write_table($server_properties);
21+
$args->write_table(empty($server_properties) ? array() : $server_properties);
2222
$args->write_longstr($mechanisms);
2323
$args->write_longstr($locales);
2424
return array(10, 10, $args);
@@ -280,14 +280,14 @@ public static function accessRequestOk($args)
280280
/**
281281
* @return array
282282
*/
283-
public function exchangeDeclare($ticket = 0, $exchange, $type = 'direct', $passive = false, $durable = false, $auto_delete = false, $internal = false, $nowait = false, $arguments = null)
283+
public function exchangeDeclare($ticket = 0, $exchange, $type = 'direct', $passive = false, $durable = false, $auto_delete = false, $internal = false, $nowait = false, $arguments = array())
284284
{
285285
$args = new AMQPWriter();
286286
$args->write_short($ticket);
287287
$args->write_shortstr($exchange);
288288
$args->write_shortstr($type);
289289
$args->write_bits(array($passive, $durable, $auto_delete, $internal, $nowait));
290-
$args->write_table(empty($arguments)? array():$arguments);
290+
$args->write_table(empty($arguments) ? array() : $arguments);
291291
return array(40, 10, $args);
292292
}
293293

@@ -334,15 +334,15 @@ public static function exchangeDeleteOk($args)
334334
/**
335335
* @return array
336336
*/
337-
public function exchangeBind($ticket = 0, $destination, $source, $routing_key = '', $nowait = false, $arguments = null)
337+
public function exchangeBind($ticket = 0, $destination, $source, $routing_key = '', $nowait = false, $arguments = array())
338338
{
339339
$args = new AMQPWriter();
340340
$args->write_short($ticket);
341341
$args->write_shortstr($destination);
342342
$args->write_shortstr($source);
343343
$args->write_shortstr($routing_key);
344344
$args->write_bits(array($nowait));
345-
$args->write_table(empty($arguments)? array():$arguments);
345+
$args->write_table(empty($arguments) ? array() : $arguments);
346346
return array(40, 30, $args);
347347
}
348348

@@ -363,15 +363,15 @@ public static function exchangeBindOk($args)
363363
/**
364364
* @return array
365365
*/
366-
public function exchangeUnbind($ticket = 0, $destination, $source, $routing_key = '', $nowait = false, $arguments = null)
366+
public function exchangeUnbind($ticket = 0, $destination, $source, $routing_key = '', $nowait = false, $arguments = array())
367367
{
368368
$args = new AMQPWriter();
369369
$args->write_short($ticket);
370370
$args->write_shortstr($destination);
371371
$args->write_shortstr($source);
372372
$args->write_shortstr($routing_key);
373373
$args->write_bits(array($nowait));
374-
$args->write_table(empty($arguments)? array():$arguments);
374+
$args->write_table(empty($arguments) ? array() : $arguments);
375375
return array(40, 40, $args);
376376
}
377377

@@ -392,13 +392,13 @@ public static function exchangeUnbindOk($args)
392392
/**
393393
* @return array
394394
*/
395-
public function queueDeclare($ticket = 0, $queue = '', $passive = false, $durable = false, $exclusive = false, $auto_delete = false, $nowait = false, $arguments = null)
395+
public function queueDeclare($ticket = 0, $queue = '', $passive = false, $durable = false, $exclusive = false, $auto_delete = false, $nowait = false, $arguments = array())
396396
{
397397
$args = new AMQPWriter();
398398
$args->write_short($ticket);
399399
$args->write_shortstr($queue);
400400
$args->write_bits(array($passive, $durable, $exclusive, $auto_delete, $nowait));
401-
$args->write_table(empty($arguments)? array():$arguments);
401+
$args->write_table(empty($arguments) ? array() : $arguments);
402402
return array(50, 10, $args);
403403
}
404404

@@ -422,15 +422,15 @@ public static function queueDeclareOk($args)
422422
/**
423423
* @return array
424424
*/
425-
public function queueBind($ticket = 0, $queue = '', $exchange, $routing_key = '', $nowait = false, $arguments = null)
425+
public function queueBind($ticket = 0, $queue = '', $exchange, $routing_key = '', $nowait = false, $arguments = array())
426426
{
427427
$args = new AMQPWriter();
428428
$args->write_short($ticket);
429429
$args->write_shortstr($queue);
430430
$args->write_shortstr($exchange);
431431
$args->write_shortstr($routing_key);
432432
$args->write_bits(array($nowait));
433-
$args->write_table(empty($arguments)? array():$arguments);
433+
$args->write_table(empty($arguments) ? array() : $arguments);
434434
return array(50, 20, $args);
435435
}
436436

@@ -505,14 +505,14 @@ public static function queueDeleteOk($args)
505505
/**
506506
* @return array
507507
*/
508-
public function queueUnbind($ticket = 0, $queue = '', $exchange, $routing_key = '', $arguments = null)
508+
public function queueUnbind($ticket = 0, $queue = '', $exchange, $routing_key = '', $arguments = array())
509509
{
510510
$args = new AMQPWriter();
511511
$args->write_short($ticket);
512512
$args->write_shortstr($queue);
513513
$args->write_shortstr($exchange);
514514
$args->write_shortstr($routing_key);
515-
$args->write_table(empty($arguments)? array():$arguments);
515+
$args->write_table(empty($arguments) ? array() : $arguments);
516516
return array(50, 50, $args);
517517
}
518518

@@ -559,14 +559,14 @@ public static function basicQosOk($args)
559559
/**
560560
* @return array
561561
*/
562-
public function basicConsume($ticket = 0, $queue = '', $consumer_tag = '', $no_local = false, $no_ack = false, $exclusive = false, $nowait = false, $arguments = null)
562+
public function basicConsume($ticket = 0, $queue = '', $consumer_tag = '', $no_local = false, $no_ack = false, $exclusive = false, $nowait = false, $arguments = array())
563563
{
564564
$args = new AMQPWriter();
565565
$args->write_short($ticket);
566566
$args->write_shortstr($queue);
567567
$args->write_shortstr($consumer_tag);
568568
$args->write_bits(array($no_local, $no_ack, $exclusive, $nowait));
569-
$args->write_table(empty($arguments)? array():$arguments);
569+
$args->write_table(empty($arguments) ? array() : $arguments);
570570
return array(60, 20, $args);
571571
}
572572

spec/parser.php

+3-1
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,9 @@ public function call_write_argument($domains, $arg)
110110

111111
} else {
112112
$ret = $this->write_bits();
113-
$ret .= '$args->write_' . $a_type . '($' . to_snake_case($arg['name']) . ");\n";
113+
114+
$a_name = '$' . to_snake_case($arg['name']);
115+
$ret .= '$args->write_' . $a_type . '(' . ($a_type === 'table' ? 'empty(' . $a_name . ') ? array() : ' : '') . $a_name . ");\n";
114116
}
115117

116118
return $ret;

0 commit comments

Comments
 (0)