TypeResolver
    
            
            in package
            
        
    
    
    
        
        
    
Table of Contents
- OPERATOR_ARRAY = '[]'
 - OPERATOR_NAMESPACE = '\\'
 - PARSER_IN_ARRAY_EXPRESSION = 2
 - PARSER_IN_COLLECTION_EXPRESSION = 3
 - PARSER_IN_COMPOUND = 0
 - PARSER_IN_NULLABLE = 1
 - $fqsenResolver : FqsenResolver
 - $keywords : array<string, string>
 - __construct() : mixed
 - Initializes this TypeResolver with the means to create and resolve Fqsen objects.
 - addKeyword() : void
 - Adds a keyword to the list of Keywords and associates it with a specific Value Object.
 - resolve() : Type
 - Analyzes the given type and returns the FQCN variant.
 - isFqsen() : bool
 - Tests whether the given type is a Fully Qualified Structural Element Name.
 - isKeyword() : bool
 - Detects whether the given type represents a PHPDoc keyword.
 - isPartialStructuralElementName() : bool
 - Detects whether the given type represents a relative structural element name.
 - makeCollectionFromObject() : Collection
 - parseTypes() : Type
 - Analyse each tokens and creates types
 - resolveClassString() : Type
 - Resolves class string
 - resolveCollection() : Array_|Iterable_|Collection
 - Resolves the collection values and keys
 - resolveInterfaceString() : Type
 - Resolves class string
 - resolveIntRange() : Type
 - Resolves integer ranges
 - resolveKeyword() : Type
 - Resolves the given keyword (such as `string`) into a Type object representing that keyword.
 - resolveSingleType() : Type|Array_|Object_
 - resolve the given type into a type object
 - resolveTypedObject() : Object_
 - Resolves the given FQSEN string into an FQSEN object.
 
Constants
OPERATOR_ARRAY
    private
        string
    OPERATOR_ARRAY
    = '[]'
    
        Definition of the ARRAY operator for types
OPERATOR_NAMESPACE
    private
        string
    OPERATOR_NAMESPACE
    = '\\'
    
        Definition of the NAMESPACE operator in PHP
PARSER_IN_ARRAY_EXPRESSION
    private
        int
    PARSER_IN_ARRAY_EXPRESSION
    = 2
    
        the iterator parser is inside an array expression context
PARSER_IN_COLLECTION_EXPRESSION
    private
        int
    PARSER_IN_COLLECTION_EXPRESSION
    = 3
    
        the iterator parser is inside a collection expression context
PARSER_IN_COMPOUND
    private
        int
    PARSER_IN_COMPOUND
    = 0
    
        the iterator parser is inside a compound context
PARSER_IN_NULLABLE
    private
        int
    PARSER_IN_NULLABLE
    = 1
    
        the iterator parser is inside a nullable expression context
Properties
$fqsenResolver
    private
        FqsenResolver
    $fqsenResolver
    
    
    
    
    Tags
$keywords
    private
        array<string, string>
    $keywords
     = ['string' => \phpDocumentor\Reflection\Types\String_::class, 'class-string' => \phpDocumentor\Reflection\Types\ClassString::class, 'interface-string' => \phpDocumentor\Reflection\Types\InterfaceString::class, 'html-escaped-string' => \phpDocumentor\Reflection\PseudoTypes\HtmlEscapedString::class, 'lowercase-string' => \phpDocumentor\Reflection\PseudoTypes\LowercaseString::class, 'non-empty-lowercase-string' => \phpDocumentor\Reflection\PseudoTypes\NonEmptyLowercaseString::class, 'non-empty-string' => \phpDocumentor\Reflection\PseudoTypes\NonEmptyString::class, 'numeric-string' => \phpDocumentor\Reflection\PseudoTypes\NumericString::class, 'numeric' => \phpDocumentor\Reflection\PseudoTypes\Numeric_::class, 'trait-string' => \phpDocumentor\Reflection\PseudoTypes\TraitString::class, 'int' => \phpDocumentor\Reflection\Types\Integer::class, 'integer' => \phpDocumentor\Reflection\Types\Integer::class, 'positive-int' => \phpDocumentor\Reflection\PseudoTypes\PositiveInteger::class, 'negative-int' => \phpDocumentor\Reflection\PseudoTypes\NegativeInteger::class, 'bool' => \phpDocumentor\Reflection\Types\Boolean::class, 'boolean' => \phpDocumentor\Reflection\Types\Boolean::class, 'real' => \phpDocumentor\Reflection\Types\Float_::class, 'float' => \phpDocumentor\Reflection\Types\Float_::class, 'double' => \phpDocumentor\Reflection\Types\Float_::class, 'object' => \phpDocumentor\Reflection\Types\Object_::class, 'mixed' => \phpDocumentor\Reflection\Types\Mixed_::class, 'array' => \phpDocumentor\Reflection\Types\Array_::class, 'array-key' => \phpDocumentor\Reflection\Types\ArrayKey::class, 'resource' => \phpDocumentor\Reflection\Types\Resource_::class, 'void' => \phpDocumentor\Reflection\Types\Void_::class, 'null' => \phpDocumentor\Reflection\Types\Null_::class, 'scalar' => \phpDocumentor\Reflection\Types\Scalar::class, 'callback' => \phpDocumentor\Reflection\Types\Callable_::class, 'callable' => \phpDocumentor\Reflection\Types\Callable_::class, 'callable-string' => \phpDocumentor\Reflection\PseudoTypes\CallableString::class, 'false' => \phpDocumentor\Reflection\PseudoTypes\False_::class, 'true' => \phpDocumentor\Reflection\PseudoTypes\True_::class, 'literal-string' => \phpDocumentor\Reflection\PseudoTypes\LiteralString::class, 'self' => \phpDocumentor\Reflection\Types\Self_::class, '$this' => \phpDocumentor\Reflection\Types\This::class, 'static' => \phpDocumentor\Reflection\Types\Static_::class, 'parent' => \phpDocumentor\Reflection\Types\Parent_::class, 'iterable' => \phpDocumentor\Reflection\Types\Iterable_::class, 'never' => \phpDocumentor\Reflection\Types\Never_::class, 'list' => \phpDocumentor\Reflection\PseudoTypes\List_::class]
    
        List of recognized keywords and unto which Value Object they map
Tags
Methods
__construct()
Initializes this TypeResolver with the means to create and resolve Fqsen objects.
    public
                    __construct([FqsenResolver|null $fqsenResolver = null ]) : mixed
    
        Parameters
- $fqsenResolver : FqsenResolver|null = null
 
Return values
mixed —addKeyword()
Adds a keyword to the list of Keywords and associates it with a specific Value Object.
    public
                    addKeyword(string $keyword, string $typeClassName) : void
    
        Parameters
- $keyword : string
 - $typeClassName : string
 
Tags
Return values
void —resolve()
Analyzes the given type and returns the FQCN variant.
    public
                    resolve(string $type[, Context|null $context = null ]) : Type
        When a type is provided this method checks whether it is not a keyword or Fully Qualified Class Name. If so it will use the given namespace and aliases to expand the type to a FQCN representation.
This method only works as expected if the namespace and aliases are set; no dynamic reflection is being performed here.
Parameters
- $type : string
 - 
                    
The relative or absolute type.
 - $context : Context|null = null
 
Tags
Return values
Type —isFqsen()
Tests whether the given type is a Fully Qualified Structural Element Name.
    private
                    isFqsen(string $type) : bool
    
        Parameters
- $type : string
 
Tags
Return values
bool —isKeyword()
Detects whether the given type represents a PHPDoc keyword.
    private
                    isKeyword(string $type) : bool
    
        Parameters
- $type : string
 - 
                    
A relative or absolute type as defined in the phpDocumentor documentation.
 
Tags
Return values
bool —isPartialStructuralElementName()
Detects whether the given type represents a relative structural element name.
    private
                    isPartialStructuralElementName(string $type) : bool
    
        Parameters
- $type : string
 - 
                    
A relative or absolute type as defined in the phpDocumentor documentation.
 
Tags
Return values
bool —makeCollectionFromObject()
    private
                    makeCollectionFromObject(Object_ $object, Type $valueType[, Type|null $keyType = null ]) : Collection
    
        Parameters
Tags
Return values
Collection —parseTypes()
Analyse each tokens and creates types
    private
                    parseTypes(ArrayIterator<int, string|null> $tokens, Context $context, int $parserContext) : Type
    
        Parameters
- $tokens : ArrayIterator<int, string|null>
 - 
                    
the iterator on tokens
 - $context : Context
 - $parserContext : int
 - 
                    
on of self::PARSER_* constants, indicating the context where we are in the parsing
 
Return values
Type —resolveClassString()
Resolves class string
    private
                    resolveClassString(ArrayIterator<int, (string|null)> $tokens, Context $context) : Type
    
        Parameters
- $tokens : ArrayIterator<int, (string|null)>
 - $context : Context
 
Return values
Type —resolveCollection()
Resolves the collection values and keys
    private
                    resolveCollection(ArrayIterator<int, (string|null)> $tokens, Type $classType, Context $context) : Array_|Iterable_|Collection
    
        Parameters
Return values
Array_|Iterable_|Collection —resolveInterfaceString()
Resolves class string
    private
                    resolveInterfaceString(ArrayIterator<int, (string|null)> $tokens, Context $context) : Type
    
        Parameters
- $tokens : ArrayIterator<int, (string|null)>
 - $context : Context
 
Return values
Type —resolveIntRange()
Resolves integer ranges
    private
                    resolveIntRange(ArrayIterator<int, (string|null)> $tokens) : Type
    
        Parameters
- $tokens : ArrayIterator<int, (string|null)>
 
Return values
Type —resolveKeyword()
Resolves the given keyword (such as `string`) into a Type object representing that keyword.
    private
                    resolveKeyword(string $type) : Type
    
        Parameters
- $type : string
 
Tags
Return values
Type —resolveSingleType()
resolve the given type into a type object
    private
                    resolveSingleType(string $type, Context $context) : Type|Array_|Object_
    
        Parameters
- $type : string
 - 
                    
the type string, representing a single type
 - $context : Context
 
Tags
Return values
Type|Array_|Object_ —resolveTypedObject()
Resolves the given FQSEN string into an FQSEN object.
    private
                    resolveTypedObject(string $type[, Context|null $context = null ]) : Object_
    
        Parameters
- $type : string
 - $context : Context|null = null