TypeResolver
    
            
            in package
            
        
    
    
    
Table of Contents
Constants
- OPERATOR_NAMESPACE = '\\'
 
Properties
- $fqsenResolver : FqsenResolver
 - $keywords : array<string, string>
 - $lexer : Lexer
 - $typeParser : TypeParser
 
Methods
- __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.
 - createType() : Type
 - resolve() : Type
 - Analyzes the given type and returns the FQCN variant.
 - createArray() : Array_
 - createFromCallable() : Callable_
 - createFromConst() : Type
 - createFromGeneric() : Type
 - 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.
 - parse() : TypeNode
 - 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.
 - tryParseRemainingCompoundTypes() : Type
 - Will try to parse unsupported type notations by phpstan
 - validArrayKeyType() : bool
 
Constants
OPERATOR_NAMESPACE
    private
        string
    OPERATOR_NAMESPACE
    = '\\'
    
        Definition of the NAMESPACE operator in PHP
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, 'non-empty-array' => \phpDocumentor\Reflection\PseudoTypes\NonEmptyArray::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, 'non-empty-list' => \phpDocumentor\Reflection\PseudoTypes\NonEmptyList::class]
    
        List of recognized keywords and unto which Value Object they map
Tags
$lexer
        private
            Lexer
    $lexer
    
    
    
    
    Tags
$typeParser
        private
            TypeParser
    $typeParser
    
    
    
    
    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
 
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
createType()
    public
                    createType(TypeNode|null $type, Context $context) : Type
    Parameters
- $type : TypeNode|null
 - $context : Context
 
Return values
Typeresolve()
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
TypecreateArray()
    private
                    createArray(array<string|int, TypeNode> $typeNodes, Context $context) : Array_
    Parameters
- $typeNodes : array<string|int, TypeNode>
 - $context : Context
 
Return values
Array_createFromCallable()
    private
                    createFromCallable(CallableTypeNode $type, Context $context) : Callable_
    Parameters
- $type : CallableTypeNode
 - $context : Context
 
Return values
Callable_createFromConst()
    private
                    createFromConst(ConstTypeNode $type, Context $context) : Type
    Parameters
- $type : ConstTypeNode
 - $context : Context
 
Return values
TypecreateFromGeneric()
    private
                    createFromGeneric(GenericTypeNode $type, Context $context) : Type
    Parameters
- $type : GenericTypeNode
 - $context : Context
 
Return values
TypeisFqsen()
Tests whether the given type is a Fully Qualified Structural Element Name.
    private
                    isFqsen(string $type) : bool
    Parameters
- $type : string
 
Tags
Return values
boolisKeyword()
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
boolisPartialStructuralElementName()
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
boolparse()
    private
                    parse(TokenIterator $tokenIterator) : TypeNode
    Parameters
- $tokenIterator : TokenIterator
 
Return values
TypeNoderesolveKeyword()
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
TyperesolveSingleType()
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
 
Tags
Return values
Object_tryParseRemainingCompoundTypes()
Will try to parse unsupported type notations by phpstan
    private
                    tryParseRemainingCompoundTypes(TokenIterator $tokenIterator, Context $context, Type $type) : Type
    The phpstan parser doesn't support the illegal nullable combinations like this library does. This method will warn the user about those notations but for bc purposes we will still have it here.
Parameters
Return values
TypevalidArrayKeyType()
    private
                    validArrayKeyType(Type|null $type) : bool
    Parameters
- $type : Type|null