Skip to content

Latest commit

 

History

History
632 lines (248 loc) · 7.18 KB

File metadata and controls

632 lines (248 loc) · 7.18 KB

Xml

The openapi annotation base class.

Properties

name

Replaces the name of the element/attribute used for the described schema property. When defined within the Items Object (items), it will affect the name of the individual XML elements within the list. When defined alongside type being array (outside the items), it will affect the wrapping element and only if wrapped is true. If wrapped is false, it will be ignored.

public string $name

namespace

The URL of the namespace definition. Value SHOULD be in the form of a URL.

public string $namespace

prefix

The prefix to be used for the name.

public string $prefix

attribute

Declares whether the property definition translates to an attribute instead of an element. Default value is false.

public bool $attribute

wrapped

MAY be used only for an array definition. Signifies whether the array is wrapped (for example, ) or unwrapped (). Default value is false. The definition takes effect only when defined alongside type being array (outside the items).

public bool $wrapped

_types

Specify the type of the property.

public static array $_types
  • This property is static.

_parents

Reverse mapping of $_nested with the allowed parent annotations.

public static string[] $_parents
  • This property is static.

_nested

Declarative mapping of Annotation types to properties.

public static array $_nested
  • This property is static.

Inherited methods

__construct

public __construct(array $properties): mixed

Parameters:

Parameter Type Description
$properties array

__get

public __get(mixed $property): mixed

Parameters:

Parameter Type Description
$property mixed

__set

public __set(mixed $property, mixed $value): mixed

Parameters:

Parameter Type Description
$property mixed
$value mixed

merge

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


mergeProperties

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

toYaml

Generate the documentation in YAML format.

public toYaml(mixed $flags = null): string

Parameters:

Parameter Type Description
$flags mixed

toJson

Generate the documentation in YAML format.

public toJson(mixed $flags = null): string

Parameters:

Parameter Type Description
$flags mixed

__debugInfo

public __debugInfo(): mixed

jsonSerialize

Customize the way json_encode() renders the annotations.

public jsonSerialize(): mixed

validate

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

_validate

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

identity

Return a identity for easy debugging.

public identity(): string

Example: "@OA\Get(path="/pets")".


isRoot

An annotation is a root if it is the top-level / outermost annotation in a PHP docblock.

public isRoot(): bool

matchNested

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


_identity

Helper for generating the identity().

protected _identity(array $properties): string

Parameters:

Parameter Type Description
$properties array

validateType

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

validateDefaultTypes

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

validateArrayType

Validate array type.

private validateArrayType(mixed $value): bool

Parameters:

Parameter Type Description
$value mixed

nested

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