Documentation

Relative extends Name
in package

Table of Contents

$parts  : array<string|int, string>
$attributes  : mixed
$specialClassNames  : mixed
__construct()  : mixed
Creates a 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|int, 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).
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, mixed>
getType()  : string
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|int, mixed>
setAttribute()  : mixed
Sets an attribute on a node.
setAttributes()  : mixed
Replaces all the attributes of this node.
setDocComment()  : mixed
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()  : array<string|int, string>
Prepares a (string, array or Name node) name for use in name changing methods by converting it to an array.

Properties

$parts

public array<string|int, string> $parts

Parts of the name

$specialClassNames

private static mixed $specialClassNames = ['self' => true, 'parent' => true, 'static' => true]

Methods

__construct()

Creates a Node.

public __construct([array<string|int, mixed> $attributes = [] ]) : mixed
Parameters
$attributes : array<string|int, mixed> = []

Array of attributes

Return values
mixed

__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|int, 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|int, 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
Return values
mixed

getAttributes()

Returns all the attributes of this node.

public getAttributes() : array<string|int, mixed>
Return values
array<string|int, 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)

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()

public getSubNodeNames() : array<string|int, mixed>
Return values
array<string|int, mixed>

getType()

public getType() : string
Return values
string

hasAttribute()

Returns whether an attribute exists.

public hasAttribute(string $key) : bool
Parameters
$key : string
Return values
bool

isFullyQualified()

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|int, mixed>
Return values
array<string|int, mixed>

setAttribute()

Sets an attribute on a node.

public setAttribute(string $key, mixed $value) : mixed
Parameters
$key : string
$value : mixed
Return values
mixed

setAttributes()

Replaces all the attributes of this node.

public setAttributes(array<string|int, mixed> $attributes) : mixed
Parameters
$attributes : array<string|int, mixed>
Return values
mixed

setDocComment()

Sets the doc comment of the node.

public setDocComment(Doc $docComment) : mixed

This will either replace an existing doc comment or add it to the comments array.

Parameters
$docComment : Doc

Doc comment to set

Return values
mixed

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 an array.

private static prepareName(string|array<string|int, string>|self $name) : array<string|int, string>
Parameters
$name : string|array<string|int, string>|self

Name to prepare

Return values
array<string|int, string>

Prepared name

Search results