src/Swagger/Serializer/DocumentationNormalizer.php
private function getType(bool $v3, string $type, bool $isCollection, ?string $className, ?bool $readableLink, \ArrayObject $definitions, array $serializerContext = null): array
    {
        if ($isCollection) {
            return ['type' => 'array', 'items' => $this->getType($v3, $type, false, $className, $readableLink, $definitions, $serializerContext)];
        }

        if (Type::BUILTIN_TYPE_STRING === $type) {
            return ['type' => 'string'];
        }

        if (Type::BUILTIN_TYPE_INT === $type) {
            return ['type' => 'integer'];
        }

        if (Type::BUILTIN_TYPE_FLOAT === $type) {
            return ['type' => 'number'];
        }

        if (Type::BUILTIN_TYPE_BOOL === $type) {
            return ['type' => 'boolean'];
        }

        if (Type::BUILTIN_TYPE_OBJECT === $type) {
            if (null === $className) {
                return ['type' => 'string'];
            }

            if (is_subclass_of($className, \DateTimeInterface::class)) {
                return ['type' => 'string', 'format' => 'date-time'];
            }

            if (!$this->resourceClassResolver->isResourceClass($className)) {
                return ['type' => 'string'];
            }

            if (true === $readableLink) {
                return [
                    '$ref' => sprintf(
                        $v3 ? '#/components/schemas/%s' : '#/definitions/%s',
                        $this->getDefinition($v3, $definitions, $resourceMetadata = $this->resourceMetadataFactory->create($className), $className, $resourceMetadata->getAttribute('output')['class'] ?? $className, $serializerContext)
                    ),
                ];
            }
        }

        return ['type' => 'string'];
    }
private function getType(bool $v3, string $type, bool $isCollection, ?string $className, ?bool $readableLink, \ArrayObject $definitions, array $serializerContext = null): array
    {
        if ($isCollection) {
            return ['type' => 'array', 'items' => $this->getType($v3, $type, false, $className, $readableLink, $definitions, $serializerContext)];
        }

        if (Type::BUILTIN_TYPE_STRING === $type) {
            return ['type' => 'string'];
        }

        if (Type::BUILTIN_TYPE_INT === $type) {
            return ['type' => 'integer'];
        }

        if (Type::BUILTIN_TYPE_FLOAT === $type) {
            return ['type' => 'number'];
        }

        if (Type::BUILTIN_TYPE_BOOL === $type) {
            return ['type' => 'boolean'];
        }

        if (Type::BUILTIN_TYPE_OBJECT === $type) {
            if (null === $className) {
                return ['type' => 'string'];
            }

            if (is_subclass_of($className, \DateTimeInterface::class)) {
                return ['type' => 'string', 'format' => 'date-time'];
            }

            if (!$this->resourceClassResolver->isResourceClass($className)) {
                return ['type' => 'string'];
            }

            if (true === $readableLink) {
                return [
                    '$ref' => sprintf(
                        $v3 ? '#/components/schemas/%s' : '#/definitions/%s',
                        $this->getDefinition($v3, $definitions, $resourceMetadata = $this->resourceMetadataFactory->create($className), $className, $resourceMetadata->getAttribute('output')['class'] ?? $className, $serializerContext)
                    ),
                ];
            }
        }

        return ['type' => 'string'];
    }
private function getType ( bool $ v3 , string $ type , bool $ isCollection , ? string $ className , ? bool $ readableLink , \ ArrayObject $ definitions , array $ serializerContext = null ) : array { if ( $ isCollection ) { return [ 'type' => 'array' , 'items' => $ this -> getType ( $ v3 , $ type , false , $ className , $ readableLink , $ definitions , $ serializerContext ) ] ; } if ( Type :: BUILTIN_TYPE_STRING === $ type ) { return [ 'type' => 'string' ] ; } if ( Type :: BUILTIN_TYPE_INT === $ type ) { return [ 'type' => 'integer' ] ; } if ( Type :: BUILTIN_TYPE_FLOAT === $ type ) { return [ 'type' => 'number' ] ; } if ( Type :: BUILTIN_TYPE_BOOL === $ type ) { return [ 'type' => 'boolean' ] ; } if ( Type :: BUILTIN_TYPE_OBJECT === $ type ) { if ( null === $ className ) { return [ 'type' => 'string' ] ; } if ( is_subclass_of ( $ className , \ DateTimeInterface :: class ) ) { return [ 'type' => 'string' , 'format' => 'date-time' ] ; } if ( ! $ this -> resourceClassResolver -> isResourceClass ( $ className ) ) { return [ 'type' => 'string' ] ; } if ( true === $ readableLink ) { return [ '$ref' => sprintf ( $ v3 ? '#/components/schemas/%s' : '#/definitions/%s' , $ this -> getDefinition ( $ v3 , $ definitions , $ resourceMetadata = $ this -> resourceMetadataFactory -> create ( $ className ) , $ className , $ resourceMetadata -> getAttribute ( 'output' ) [ 'class' ] ?? $ className , $ serializerContext ) ) , ] ; } } return [ 'type' => 'string' ] ; }
Gets the Swagger's type corresponding to the given PHP's type.
Gets the Swagger s type corresponding to the given PHP s type .