Skip to content

Commit 572e532

Browse files
committed
Fix a bug in the NelmioApiDoc bridge
1 parent eef31df commit 572e532

File tree

3 files changed

+11
-11
lines changed

3 files changed

+11
-11
lines changed

src/Action/ExceptionAction.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ public function __construct(SerializerInterface $serializer, array $errorFormats
4040
{
4141
$this->serializer = $serializer;
4242
$this->errorFormats = $errorFormats;
43-
$this->exceptionToStatus = array_merge(self::DEFAULT_EXCEPTION_TO_STATUS, $exceptionToStatus);
43+
$this->exceptionToStatus = self::DEFAULT_EXCEPTION_TO_STATUS + $exceptionToStatus;
4444
}
4545

4646
/**

src/Bridge/NelmioApiDoc/Parser/ApiPlatformParser.php

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,11 @@ private function parseResource(ResourceMetadata $resourceMetadata, string $resou
112112
}
113113

114114
if (isset($attributes['denormalization_context']['groups'])) {
115-
$options['serializer_groups'] = isset($options['serializer_groups']) ? array_merge($options['serializer_groups'], $attributes['denormalization_context']['groups']) : $options['serializer_groups'];
115+
if (isset($options['serializer_groups'])) {
116+
$options['serializer_groups'] += $attributes['denormalization_context']['groups'];
117+
} else {
118+
$options['serializer_groups'] = $attributes['denormalization_context']['groups'];
119+
}
116120
}
117121

118122
return $this->getPropertyMetadata($resourceMetadata, $resourceClass, $io, $visited, $options);
@@ -129,8 +133,8 @@ private function parseResource(ResourceMetadata $resourceMetadata, string $resou
129133
private function getGroupsForItemAndCollectionOperation(ResourceMetadata $resourceMetadata, string $operationName) : array
130134
{
131135
$operation = [
132-
'denormalization_context' => array_merge($resourceMetadata->getItemOperationAttribute($operationName, 'denormalization_context', []), $resourceMetadata->getCollectionOperationAttribute($operationName, 'denormalization_context', [])),
133-
'normalization_context' => array_merge($resourceMetadata->getItemOperationAttribute($operationName, 'normalization_context', []), $resourceMetadata->getCollectionOperationAttribute($operationName, 'normalization_context', [])),
136+
'denormalization_context' => $resourceMetadata->getItemOperationAttribute($operationName, 'denormalization_context', []) + $resourceMetadata->getCollectionOperationAttribute($operationName, 'denormalization_context', []),
137+
'normalization_context' => $resourceMetadata->getItemOperationAttribute($operationName, 'normalization_context', []) + $resourceMetadata->getCollectionOperationAttribute($operationName, 'normalization_context', []),
134138
];
135139

136140
$options = [

src/Swagger/Serializer/DocumentationNormalizer.php

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -335,8 +335,7 @@ private function getPropertySchema(PropertyMetadata $propertyMetadata) : \ArrayO
335335
break;
336336

337337
case Type::BUILTIN_TYPE_OBJECT:
338-
$className = $valueType->getClassName();
339-
if (null === $className) {
338+
if (null === $className = $valueType->getClassName()) {
340339
break;
341340
}
342341

@@ -350,24 +349,21 @@ private function getPropertySchema(PropertyMetadata $propertyMetadata) : \ArrayO
350349
break;
351350
}
352351

353-
if ($propertyMetadata->isReadableLink()) {
352+
if (true === $propertyMetadata->isReadableLink()) {
354353
$valueSchema['$ref'] = sprintf('#/definitions/%s', $this->resourceMetadataFactory->create($className)->getShortName());
355354
break;
356355
}
357356

358357
$valueSchema['type'] = 'string';
359358
$valueSchema['format'] = 'uri';
360359
break;
361-
362-
default:
363-
break;
364360
}
365361

366362
if ($type->isCollection()) {
367363
$propertySchema['type'] = 'array';
368364
$propertySchema['items'] = $valueSchema;
369365
} else {
370-
$propertySchema = new \ArrayObject(array_merge((array) $propertySchema, (array) $valueSchema));
366+
$propertySchema = new \ArrayObject((array) $propertySchema + (array) $valueSchema);
371367
}
372368

373369
return $propertySchema;

0 commit comments

Comments
 (0)