The openapi annotation base class.
- Full name:
\OpenApi\Annotations\Link
- Parent class:
\OpenApi\Annotations\AbstractAnnotation
$ref See https://swagger.io/docs/specification/using-ref/.
public string $ref
The key into MediaType->links array.
public string $link
A relative or absolute reference to an OA operation.
public string $operationRef
This field is mutually exclusive of the operationId field, and must point to an Operation Object. Relative operationRef values may be used to locate an existing Operation Object in the OpenAPI definition.
The name of an existing, resolvable OA operation, as defined with a unique operationId.
public string $operationId
This field is mutually exclusive of the operationRef field.
A map representing parameters to pass to an operation as specified with operationId or identified via operationRef.
public $parameters
The key is the parameter name to be used, whereas the value can be a constant or an expression to be evaluated and passed to the linked operation. The parameter name can be qualified using the parameter location [{in}.]{name} for operations that use the same parameter name in different locations (e.g. path.id).
A literal value or {expression} to use as a request body when calling the target operation.
public $requestBody
A description of the link.
public string $description
CommonMark syntax may be used for rich text representation.
A server object to be used by the target operation.
public \OpenApi\Annotations\Server $server
Declarative mapping of Annotation types to properties.
public static array $_nested
- This property is static.
Reverse mapping of $_nested with the allowed parent annotations.
public static string[] $_parents
- 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 |