forked from zircote/swagger-php
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathItems.php
62 lines (53 loc) · 1.48 KB
/
Items.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
<?php declare(strict_types=1);
/**
* @license Apache 2.0
*/
namespace OpenApi\Annotations;
/**
* The description of an item in a Schema with type `array`.
*
* @Annotation
*/
class Items extends Schema
{
/**
* @inheritdoc
*/
public static $_nested = [
Discriminator::class => 'discriminator',
Items::class => 'items',
Property::class => ['properties', 'property'],
ExternalDocumentation::class => 'externalDocs',
Xml::class => 'xml',
AdditionalProperties::class => 'additionalProperties',
Attachable::class => ['attachables'],
];
/**
* @inheritdoc
*/
public static $_parents = [
Property::class,
AdditionalProperties::class,
Schema::class,
JsonContent::class,
XmlContent::class,
Items::class,
];
/**
* @inheritdoc
*/
public function validate(array $stack = [], array $skip = [], string $ref = '', $context = null): bool
{
if (in_array($this, $skip, true)) {
return true;
}
$valid = parent::validate($stack, $skip, $ref, $context);
$parent = end($stack);
if ($parent instanceof Schema && $parent->type !== 'array') {
$this->_context->logger->warning('@OA\\Items() parent type must be "array" in ' . $this->_context);
$valid = false;
}
// @todo Additional validation when used inside a Header or Parameter context.
return $valid;
}
}