Name
extends NodeAbstract
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
Tags
$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
Tags
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).
Tags
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
Tags
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>
Tags
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).
Tags
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
Tags
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
Tags
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
Tags
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
Tags
Return values
string —Prepared name