The openapi annotation base class.
- Full name:
\OpenApi\Annotations\Discriminator
- Parent class:
\OpenApi\Annotations\AbstractAnnotation
The name of the property in the payload that will hold the discriminator value.
public string $propertyName
An object to hold mappings between payload values and schema names or references.
public string[] $mapping
The properties which are required by the spec.
public static array $_required
- This property is static.
Specify the type of the property.
public static array $_types
- This property is static.
Reverse mapping of $_nested with the allowed parent annotations.
public static string[] $_parents
- This property is static.
Declarative mapping of Annotation types to properties.
public static array $_nested
- This property is static.
public __construct(array $properties): mixed
Parameters:
Parameter | Type | Description |
---|---|---|
$properties |
array |
public __get(mixed $property): mixed
Parameters:
Parameter | Type | Description |
---|---|---|
$property |
mixed |
public __set(mixed $property, mixed $value): mixed
Parameters:
Parameter | Type | Description |
---|---|---|
$property |
mixed | |
$value |
mixed |
Merge given annotations to their mapped properties configured in static::$_nested.
public merge(\OpenApi\Annotations\AbstractAnnotation[] $annotations, bool $ignore = false): \OpenApi\Annotations\AbstractAnnotation[]
Annotations that couldn't be merged are added to the _unmerged array.
Parameters:
Parameter | Type | Description |
---|---|---|
$annotations |
\OpenApi\Annotations\AbstractAnnotation[] | |
$ignore |
bool | Ignore unmerged annotations |
Return Value:
The unmerged annotations
Merge the properties from the given object into this annotation.
public mergeProperties(object $object): void
Prevents overwriting properties that are already configured.
Parameters:
Parameter | Type | Description |
---|---|---|
$object |
object |
Generate the documentation in YAML format.
public toYaml(mixed $flags = null): string
Parameters:
Parameter | Type | Description |
---|---|---|
$flags |
mixed |
Generate the documentation in YAML format.
public toJson(mixed $flags = null): string
Parameters:
Parameter | Type | Description |
---|---|---|
$flags |
mixed |
public __debugInfo(): mixed
Customize the way json_encode() renders the annotations.
public jsonSerialize(): mixed
Validate annotation tree, and log notices & warnings.
public validate(array $parents = [], array $skip = [], string $ref = ''): bool
Parameters:
Parameter | Type | Description |
---|---|---|
$parents |
array | the path of annotations above this annotation in the tree |
$skip |
array | (prevent stack overflow, when traversing an infinite dependency graph) |
$ref |
string |
Recursively validate all annotation properties.
private static _validate(array|object $fields, array $parents, array $skip, string $baseRef): bool
- This method is static.
Parameters:
Parameter | Type | Description |
---|---|---|
$fields |
array|object | |
$parents |
array | the path of annotations above this annotation in the tree |
$skip |
array | List of objects already validated |
$baseRef |
string |
Return a identity for easy debugging.
public identity(): string
Example: "@OA\Get(path="/pets")".
An annotation is a root if it is the top-level / outermost annotation in a PHP docblock.
public isRoot(): bool
Find matching nested details.
public static matchNested(string $class): null|object
- This method is static.
Parameters:
Parameter | Type | Description |
---|---|---|
$class |
string | the class to match |
Return Value:
key/value object or null
Helper for generating the identity().
protected _identity(array $properties): string
Parameters:
Parameter | Type | Description |
---|---|---|
$properties |
array |
Validates the matching of the property value to a annotation type.
private validateType(string $type, mixed $value): bool
Parameters:
Parameter | Type | Description |
---|---|---|
$type |
string | The annotations property type |
$value |
mixed | The property value |
Validates default Open Api types.
private validateDefaultTypes(string $type, mixed $value): bool
Parameters:
Parameter | Type | Description |
---|---|---|
$type |
string | The property type |
$value |
mixed | The value to validate |
Validate array type.
private validateArrayType(mixed $value): bool
Parameters:
Parameter | Type | Description |
---|---|---|
$value |
mixed |
Wrap the context with a reference to the annotation it is nested in.
private nested(\OpenApi\Annotations\AbstractAnnotation $annotation, \OpenApi\Context $nestedContext): \OpenApi\Annotations\AbstractAnnotation
Parameters:
Parameter | Type | Description |
---|---|---|
$annotation |
\OpenApi\Annotations\AbstractAnnotation | |
$nestedContext |
\OpenApi\Context |