Fixed error if an array is empty in RpcLiteralRequestMessageBinder

This commit is contained in:
Francis Besset
2011-09-01 20:18:28 +02:00
parent 958efd3431
commit faf8b58108
2 changed files with 34 additions and 6 deletions

View File

@ -49,16 +49,17 @@ class RpcLiteralRequestMessageBinder implements MessageBinderInterface
if (preg_match('/^([^\[]+)\[\]$/', $phpType, $match)) {
$isArray = true;
$array = array();
$phpType = $match[1];
}
// @TODO Fix array reference
if (isset($this->definitionComplexTypes[$phpType])) {
if ($isArray) {
$array = array();
foreach ($message->item as $complexType) {
$array[] = $this->checkComplexType($phpType, $complexType);
if (isset($message->item)) {
foreach ($message->item as $complexType) {
$array[] = $this->checkComplexType($phpType, $complexType);
}
}
$message = $array;
@ -66,7 +67,11 @@ class RpcLiteralRequestMessageBinder implements MessageBinderInterface
$message = $this->checkComplexType($phpType, $message);
}
} elseif ($isArray) {
$message = $message->item;
if (isset($message->item)) {
$message = $message->item;
} else {
$message = $array;
}
}
return $message;