Relative
        
        extends Name
    
    
            
            in package
            
        
    
    
    
Table of Contents
Properties
- $name : string
- $attributes : array<string, mixed>
- $specialClassNames : array<string, bool>
Methods
- __construct() : mixed
- Constructs a name node.
- __toString() : string
- Returns a string representation of the name by imploding the namespace parts with the namespace separator.
- concat() : static|null
- Concatenate two names, yielding a new Name instance.
- getAttribute() : mixed
- Returns the value of an attribute.
- getAttributes() : array<string, mixed>
- Returns all the attributes of this node.
- getComments() : array<string|int, Comment>
- Gets all comments directly preceding this node.
- getDocComment() : null|Doc
- Gets the doc comment of the node.
- getEndFilePos() : int
- Gets the file offset of the last character that is part of this node.
- getEndLine() : int
- Gets the line the node ended in.
- getEndTokenPos() : int
- Gets the token offset of the last token that is part of this node.
- getFirst() : string
- Gets the first part of the name, i.e. everything before the first namespace separator.
- getLast() : string
- Gets the last part of the name, i.e. everything after the last namespace separator.
- getLine() : int
- Gets line the node started in (alias of getStartLine).
- getParts() : array<string|int, string>
- Get parts of name (split by the namespace separator).
- getStartFilePos() : int
- Gets the file offset of the first character that is part of this node.
- getStartLine() : int
- Gets line the node started in.
- getStartTokenPos() : int
- Gets the token offset of the first token that is part of this node.
- getSubNodeNames() : array<string|int, string>
- Gets the names of the sub nodes.
- getType() : string
- Gets the type of the node.
- hasAttribute() : bool
- Returns whether an attribute exists.
- isFullyQualified() : bool
- Checks whether the name is fully qualified. (E.g. \Name)
- isQualified() : bool
- Checks whether the name is qualified. (E.g. Name\Name)
- isRelative() : bool
- Checks whether the name is explicitly relative to the current namespace. (E.g. namespace\Name)
- isSpecialClassName() : bool
- Checks whether the identifier is a special class name (self, parent or static).
- isUnqualified() : bool
- Checks whether the name is unqualified. (E.g. Name)
- jsonSerialize() : array<string, mixed>
- setAttribute() : void
- Sets an attribute on a node.
- setAttributes() : void
- Replaces all the attributes of this node.
- setDocComment() : void
- Sets the doc comment of the node.
- slice() : static|null
- Gets a slice of a name (similar to array_slice).
- toCodeString() : string
- Returns a string representation of the name as it would occur in code (e.g., including leading backslash for fully qualified names.
- toLowerString() : string
- Returns lowercased string representation of the name, without taking the name type into account (e.g., no leading backslash for fully qualified names).
- toString() : string
- Returns a string representation of the name itself, without taking the name type into account (e.g., not including a leading backslash for fully qualified names).
- prepareName() : string
- Prepares a (string, array or Name node) name for use in name changing methods by converting it to a string.
Properties
$name
    public
        string
    $name
    
    
        Name as string
$attributes
    protected
        array<string, mixed>
    $attributes
    
    
        Attributes
$specialClassNames
    private
    static    array<string, bool>
    $specialClassNames
     = ['self' => true, 'parent' => true, 'static' => true]
    
    
    
Methods
__construct()
Constructs a name node.
    public
        final            __construct(string|array<string|int, string>|self $name[, array<string, mixed> $attributes = [] ]) : mixed
    Parameters
- $name : string|array<string|int, string>|self
- 
                    Name as string, part array or Name instance (copy ctor) 
- $attributes : array<string, mixed> = []
- 
                    Additional attributes 
__toString()
Returns a string representation of the name by imploding the namespace parts with the namespace separator.
    public
                    __toString() : string
    Return values
string —String representation
concat()
Concatenate two names, yielding a new Name instance.
    public
            static        concat(string|array<string|int, string>|self|null $name1, string|array<string|int, string>|self|null $name2[, array<string, mixed> $attributes = [] ]) : static|null
    The type of the generated instance depends on which class this method is called on, for example Name\FullyQualified::concat() will yield a Name\FullyQualified instance.
If one of the arguments is null, a new instance of the other name will be returned. If both arguments are null, null will be returned. As such, writing Name::concat($namespace, $shortName) where $namespace is a Name node or null will work as expected.
Parameters
- $name1 : string|array<string|int, string>|self|null
- 
                    The first name 
- $name2 : string|array<string|int, string>|self|null
- 
                    The second name 
- $attributes : array<string, mixed> = []
- 
                    Attributes to assign to concatenated name 
Return values
static|null —Concatenated name
getAttribute()
Returns the value of an attribute.
    public
                    getAttribute(string $key[, mixed $default = null ]) : mixed
    Parameters
- $key : string
- $default : mixed = null
getAttributes()
Returns all the attributes of this node.
    public
                    getAttributes() : array<string, mixed>
    Return values
array<string, mixed>getComments()
Gets all comments directly preceding this node.
    public
                    getComments() : array<string|int, Comment>
    The comments are also available through the "comments" attribute.
Return values
array<string|int, Comment>getDocComment()
Gets the doc comment of the node.
    public
                    getDocComment() : null|Doc
    Return values
null|Doc —Doc comment object or null
getEndFilePos()
Gets the file offset of the last character that is part of this node.
    public
                    getEndFilePos() : int
    Requires the 'endFilePos' attribute to be enabled in the lexer (DISABLED by default).
Return values
int —File end position (or -1 if not available)
getEndLine()
Gets the line the node ended in.
    public
                    getEndLine() : int
    Requires the 'endLine' attribute to be enabled in the lexer (enabled by default).
Return values
int —End line (or -1 if not available)
getEndTokenPos()
Gets the token offset of the last token that is part of this node.
    public
                    getEndTokenPos() : int
    The offset is an index into the array returned by Lexer::getTokens().
Requires the 'endTokenPos' attribute to be enabled in the lexer (DISABLED by default).
Return values
int —Token end position (or -1 if not available)
getFirst()
Gets the first part of the name, i.e. everything before the first namespace separator.
    public
                    getFirst() : string
    Return values
string —First part of the name
getLast()
Gets the last part of the name, i.e. everything after the last namespace separator.
    public
                    getLast() : string
    Return values
string —Last part of the name
getLine()
Gets line the node started in (alias of getStartLine).
    public
                    getLine() : int
    Return values
int —Start line (or -1 if not available)
getParts()
Get parts of name (split by the namespace separator).
    public
                    getParts() : array<string|int, string>
    Return values
array<string|int, string> —Parts of name
getStartFilePos()
Gets the file offset of the first character that is part of this node.
    public
                    getStartFilePos() : int
    Requires the 'startFilePos' attribute to be enabled in the lexer (DISABLED by default).
Return values
int —File start position (or -1 if not available)
getStartLine()
Gets line the node started in.
    public
                    getStartLine() : int
    Requires the 'startLine' attribute to be enabled in the lexer (enabled by default).
Return values
int —Start line (or -1 if not available)
getStartTokenPos()
Gets the token offset of the first token that is part of this node.
    public
                    getStartTokenPos() : int
    The offset is an index into the array returned by Lexer::getTokens().
Requires the 'startTokenPos' attribute to be enabled in the lexer (DISABLED by default).
Return values
int —Token start position (or -1 if not available)
getSubNodeNames()
Gets the names of the sub nodes.
    public
                    getSubNodeNames() : array<string|int, string>
    Return values
array<string|int, string> —Names of sub nodes
getType()
Gets the type of the node.
    public
                    getType() : string
    Return values
string —Type of the node
hasAttribute()
Returns whether an attribute exists.
    public
                    hasAttribute(string $key) : bool
    Parameters
- $key : string
Return values
boolisFullyQualified()
Checks whether the name is fully qualified. (E.g. \Name)
    public
                    isFullyQualified() : bool
    Return values
bool —Whether the name is fully qualified
isQualified()
Checks whether the name is qualified. (E.g. Name\Name)
    public
                    isQualified() : bool
    Return values
bool —Whether the name is qualified
isRelative()
Checks whether the name is explicitly relative to the current namespace. (E.g. namespace\Name)
    public
                    isRelative() : bool
    Return values
bool —Whether the name is relative
isSpecialClassName()
Checks whether the identifier is a special class name (self, parent or static).
    public
                    isSpecialClassName() : bool
    Return values
bool —Whether identifier is a special class name
isUnqualified()
Checks whether the name is unqualified. (E.g. Name)
    public
                    isUnqualified() : bool
    Return values
bool —Whether the name is unqualified
jsonSerialize()
    public
                    jsonSerialize() : array<string, mixed>
    Return values
array<string, mixed>setAttribute()
Sets an attribute on a node.
    public
                    setAttribute(string $key, mixed $value) : void
    Parameters
- $key : string
- $value : mixed
setAttributes()
Replaces all the attributes of this node.
    public
                    setAttributes(array<string|int, mixed> $attributes) : void
    Parameters
- $attributes : array<string|int, mixed>
setDocComment()
Sets the doc comment of the node.
    public
                    setDocComment(Doc $docComment) : void
    This will either replace an existing doc comment or add it to the comments array.
Parameters
- $docComment : Doc
- 
                    Doc comment to set 
slice()
Gets a slice of a name (similar to array_slice).
    public
                    slice(int $offset[, int|null $length = null ]) : static|null
    This method returns a new instance of the same type as the original and with the same attributes.
If the slice is empty, null is returned. The null value will be correctly handled in concatenations using concat().
Offset and length have the same meaning as in array_slice().
Parameters
- $offset : int
- 
                    Offset to start the slice at (may be negative) 
- $length : int|null = null
- 
                    Length of the slice (may be negative) 
Return values
static|null —Sliced name
toCodeString()
Returns a string representation of the name as it would occur in code (e.g., including leading backslash for fully qualified names.
    public
                    toCodeString() : string
    Return values
string —String representation
toLowerString()
Returns lowercased string representation of the name, without taking the name type into account (e.g., no leading backslash for fully qualified names).
    public
                    toLowerString() : string
    Return values
string —Lowercased string representation
toString()
Returns a string representation of the name itself, without taking the name type into account (e.g., not including a leading backslash for fully qualified names).
    public
                    toString() : string
    Return values
string —String representation
prepareName()
Prepares a (string, array or Name node) name for use in name changing methods by converting it to a string.
    private
            static        prepareName(string|array<string|int, string>|self $name) : string
    Parameters
- $name : string|array<string|int, string>|self
- 
                    Name to prepare 
Return values
string —Prepared name