Node
extends DataObject
in package
Table of Contents
Properties
- $_childNodes : Collection
- Child nodes
- $_data : array<string|int, mixed>|null
- Object attributes
- $_dirty : array<string|int, mixed>
- $_hasDataChanges : bool
- Data changes flag (true after setData|unsetData call)
- $_idField : string
- Node ID field name
- $_idFieldName : string
- Name of object id field
- $_isDeleted : bool
- Object delete flag
- $_oldFieldsMap : array<string|int, mixed>
- Map short fields names to its full names
- $_parent : Node
- Parent node
- $_syncFieldsMap : mixed
- Map of fields to sync to other fields upon changing their data
- $_tree : Tree
- Main tree object
- $_underscoreCache : array<string|int, mixed>
- Setter/Getter underscore transformation cache
Methods
- __call() : mixed
- Set/Get attribute wrapper
- __construct() : mixed
- Data tree node constructor
- __get() : mixed
- Attribute getter (deprecated)
- __set() : mixed
- Attribute setter (deprecated)
- __toArray() : array<string|int, mixed>
- Convert object attributes to array
- addChild() : Node
- Add child node
- addData() : $this
- Add data to the object.
- appendChild() : $this
- copyTo() : $this
- debug() : string|array<string|int, mixed>
- Present object data as string in debug mode
- flagDirty() : $this
- getAllChildNodes() : array<string|int, Node>
- getChildren() : Collection
- Retrieve node children collection
- getClass() : string|null
- getData() : mixed
- Object data getter
- getDataByKey() : mixed
- Get object data by particular key
- getDataByPath() : mixed
- Get object data by path
- getDataSetDefault() : mixed
- Fast get data or set default if value is not available
- getDataUsingMethod() : mixed
- Get object data by key with calling getter method
- getId() : mixed
- Retrieve node id
- getIdField() : string
- Retrieve node id field name
- getIdFieldName() : string
- Retrieve name of object id field
- getIsActive() : bool
- getIsFirst() : bool|null
- getIsLast() : bool|null
- getLastChild() : Node
- getLevel() : int|null
- getName() : string
- getOutermostClass() : string|null
- getParent() : Node
- Retrieve node parent
- getPath() : array<string|int, mixed>
- getPositionClass() : string|null
- getTree() : Tree
- Retrieve node tree object
- hasChildren() : bool
- Check node children
- hasData() : bool
- If $key is empty, checks whether there's any data in the object Otherwise checks if the specified attribute is set.
- hasDataChanges() : bool
- Get data change status
- isChildOf() : mixed
- isDeleted() : bool
- Set _isDeleted flag value (if $isDeleted param is defined) and return current flag value
- isDirty() : bool
- isEmpty() : bool
- checks whether the object is empty
- jsonSerialize() : array<string|int, mixed>
- Implementation of JsonSerializable::jsonSerialize()
- loadChildren() : Node
- Load node children
- moveTo() : $this
- offsetExists() : bool
- Implementation of ArrayAccess::offsetExists()
- offsetGet() : mixed
- Implementation of ArrayAccess::offsetGet()
- offsetSet() : void
- Implementation of ArrayAccess::offsetSet()
- offsetUnset() : void
- Implementation of ArrayAccess::offsetUnset()
- removeChild() : $this
- serialize() : string
- serialize object attributes
- setChildrenWrapClass() : static
- setData() : $this
- Overwrite data in the object.
- setDataChanges() : $this
- Clears data changes status
- setDataUsingMethod() : $this
- Set object data with calling setter method
- setId() : $this
- Set object id field value
- setIdField() : $this
- Set node id field name
- setIdFieldName() : $this
- set name of object id field
- setLevel() : $this
- setOutermostClass() : static
- setParent() : Node
- Set node parent
- setPathId() : $this
- setTree() : $this
- Set node tree object
- toArray() : array<string|int, mixed>
- Public wrapper for __toArray
- toJson() : string
- Public wrapper for __toJson
- toString() : string
- Public wrapper for __toString
- toXml() : string
- Public wrapper for __toXml
- unsetData() : $this
- Unset data from the object.
- unsetOldData() : $this
- Unset old fields data from the object.
- __toJson() : string
- Convert object attributes to JSON
- __toXml() : string
- Convert object attributes to XML
- _addFullNames() : mixed
- _camelize() : string
- _construct() : void
- Internal constructor not depended on params. Can be used for object initialization
- _getData() : mixed
- Get value from _data array without parse key
- _initOldFieldsMap() : mixed
- Inits mapping array of object's previously used fields to new fields.
- _prepareArray() : array<string|int, mixed>
- Set required array elements
- _prepareSyncFieldsMap() : $this
- Called after old fields are inited. Forms synchronization map to sync old fields and new fields between each other.
- _underscore() : string
- Converts field names for setters and getters
Properties
$_childNodes
Child nodes
protected
Collection
$_childNodes
$_data
Object attributes
protected
array<string|int, mixed>|null
$_data
= []
$_dirty
protected
array<string|int, mixed>
$_dirty
$_hasDataChanges
Data changes flag (true after setData|unsetData call)
protected
bool
$_hasDataChanges
= false
$_idField
Node ID field name
protected
string
$_idField
$_idFieldName
Name of object id field
protected
string
$_idFieldName
= null
$_isDeleted
Object delete flag
protected
bool
$_isDeleted
= false
$_oldFieldsMap
Map short fields names to its full names
protected
array<string|int, mixed>
$_oldFieldsMap
= []
$_parent
Parent node
protected
Node
$_parent
$_syncFieldsMap
Map of fields to sync to other fields upon changing their data
protected
mixed
$_syncFieldsMap
= []
$_tree
Main tree object
protected
Tree
$_tree
$_underscoreCache
Setter/Getter underscore transformation cache
protected
static array<string|int, mixed>
$_underscoreCache
= []
Methods
__call()
Set/Get attribute wrapper
public
__call(string $method, array<string|int, mixed> $args) : mixed
Parameters
- $method : string
- $args : array<string|int, mixed>
__construct()
Data tree node constructor
public
__construct(array<string|int, mixed> $data, string $idField, Tree $tree[, Node $parent = null ]) : mixed
Parameters
__get()
Attribute getter (deprecated)
public
__get(string $var) : mixed
Parameters
- $var : string
__set()
Attribute setter (deprecated)
public
__set(string $var, mixed $value) : mixed
Parameters
- $var : string
- $value : mixed
__toArray()
Convert object attributes to array
public
__toArray([array<string|int, mixed> $arrAttributes = [] ]) : array<string|int, mixed>
Parameters
- $arrAttributes : array<string|int, mixed> = []
-
array of required attributes
Return values
array<string|int, mixed>addChild()
Add child node
public
addChild(Node $node) : Node
Parameters
- $node : Node
Return values
NodeaddData()
Add data to the object.
public
addData(array<string|int, mixed> $arr) : $this
Retains previous data in the object.
Parameters
- $arr : array<string|int, mixed>
Return values
$thisappendChild()
public
appendChild([Node|null $prevNode = null ]) : $this
Parameters
- $prevNode : Node|null = null
Return values
$thiscopyTo()
public
copyTo(Node $parentNode[, Node|null $prevNode = null ]) : $this
Parameters
Return values
$thisdebug()
Present object data as string in debug mode
public
debug([mixed $data = null ][, array<string|int, mixed> &$objects = [] ]) : string|array<string|int, mixed>
Parameters
- $data : mixed = null
- $objects : array<string|int, mixed> = []
Return values
string|array<string|int, mixed>flagDirty()
public
flagDirty(string $field[, bool $flag = true ]) : $this
Parameters
- $field : string
- $flag : bool = true
Return values
$thisgetAllChildNodes()
public
getAllChildNodes([array<string|int, mixed> &$nodes = [] ]) : array<string|int, Node>
Parameters
- $nodes : array<string|int, mixed> = []
Return values
array<string|int, Node>getChildren()
Retrieve node children collection
public
getChildren() : Collection
Return values
CollectiongetClass()
public
getClass() : string|null
Return values
string|nullgetData()
Object data getter
public
getData([string $key = '' ][, string|int $index = null ]) : mixed
If $key is not defined will return all the data as an array. Otherwise, it will return value of the element specified by $key. It is possible to use keys like a/b/c for access nested array data
If $index is specified it will assume that attribute data is an array and retrieve corresponding member. If data is the string - it will be explode by new line character and converted to array.
Parameters
- $key : string = ''
- $index : string|int = null
getDataByKey()
Get object data by particular key
public
getDataByKey(string $key) : mixed
Parameters
- $key : string
getDataByPath()
Get object data by path
public
getDataByPath(string $path) : mixed
Method consider the path as chain of keys: a/b/c => ['a']['b']['c']
Parameters
- $path : string
getDataSetDefault()
Fast get data or set default if value is not available
public
getDataSetDefault(string $key, mixed $default) : mixed
Parameters
- $key : string
- $default : mixed
getDataUsingMethod()
Get object data by key with calling getter method
public
getDataUsingMethod(string $key[, mixed $args = null ]) : mixed
Parameters
- $key : string
- $args : mixed = null
getId()
Retrieve node id
public
getId() : mixed
Attributes
- #[Override]
getIdField()
Retrieve node id field name
public
getIdField() : string
Return values
stringgetIdFieldName()
Retrieve name of object id field
public
getIdFieldName() : string
Return values
stringgetIsActive()
public
getIsActive() : bool
Return values
boolgetIsFirst()
public
getIsFirst() : bool|null
Return values
bool|nullgetIsLast()
public
getIsLast() : bool|null
Return values
bool|nullgetLastChild()
public
getLastChild() : Node
Return values
NodegetLevel()
public
getLevel() : int|null
Return values
int|nullgetName()
public
getName() : string
Return values
stringgetOutermostClass()
public
getOutermostClass() : string|null
Return values
string|nullgetParent()
Retrieve node parent
public
getParent() : Node
Return values
NodegetPath()
public
getPath([array<string|int, mixed> &$prevNodes = [] ]) : array<string|int, mixed>
Parameters
- $prevNodes : array<string|int, mixed> = []
Return values
array<string|int, mixed>getPositionClass()
public
getPositionClass() : string|null
Return values
string|nullgetTree()
Retrieve node tree object
public
getTree() : Tree
Return values
TreehasChildren()
Check node children
public
hasChildren() : bool
Return values
boolhasData()
If $key is empty, checks whether there's any data in the object Otherwise checks if the specified attribute is set.
public
hasData([string $key = '' ]) : bool
Parameters
- $key : string = ''
Return values
boolhasDataChanges()
Get data change status
public
hasDataChanges() : bool
Return values
boolisChildOf()
public
isChildOf(Node $node) : mixed
Parameters
- $node : Node
Tags
isDeleted()
Set _isDeleted flag value (if $isDeleted param is defined) and return current flag value
public
isDeleted([bool $isDeleted = null ]) : bool
Parameters
- $isDeleted : bool = null
Return values
boolisDirty()
public
isDirty([string $field = null ]) : bool
Parameters
- $field : string = null
Return values
boolisEmpty()
checks whether the object is empty
public
isEmpty() : bool
Return values
booljsonSerialize()
Implementation of JsonSerializable::jsonSerialize()
public
jsonSerialize() : array<string|int, mixed>
Prepares the object data for JSON serialization. Returns all object data as an array, with special handling for nested DataObject instances:
- If a nested DataObject has a custom jsonSerialize() implementation, it's preserved as-is
- If a nested DataObject has a custom toJson() method, it's converted to JSON string
- If a nested DataObject uses only the base implementations, it's excluded from output
This prevents infinite recursion and circular references when serializing object hierarchies.
Attributes
- #[Override]
Return values
array<string|int, mixed>loadChildren()
Load node children
public
loadChildren([int $recursionLevel = 0 ]) : Node
Parameters
- $recursionLevel : int = 0
Return values
NodemoveTo()
public
moveTo(Node $parentNode[, Node|null $prevNode = null ]) : $this
Parameters
Return values
$thisoffsetExists()
Implementation of ArrayAccess::offsetExists()
public
offsetExists(string $offset) : bool
Parameters
- $offset : string
Tags
Attributes
- #[Override]
Return values
booloffsetGet()
Implementation of ArrayAccess::offsetGet()
public
offsetGet(string $offset) : mixed
Parameters
- $offset : string
Tags
Attributes
- #[Override]
- #[ReturnTypeWillChange]
offsetSet()
Implementation of ArrayAccess::offsetSet()
public
offsetSet(string $offset, mixed $value) : void
Parameters
- $offset : string
- $value : mixed
Tags
Attributes
- #[Override]
offsetUnset()
Implementation of ArrayAccess::offsetUnset()
public
offsetUnset(string $offset) : void
Parameters
- $offset : string
Tags
Attributes
- #[Override]
removeChild()
public
removeChild(Node $childNode) : $this
Parameters
- $childNode : Node
Return values
$thisserialize()
serialize object attributes
public
serialize([array<string|int, mixed> $attributes = [] ][, string $valueSeparator = '=' ][, string $fieldSeparator = ' ' ][, string $quote = '"' ]) : string
Parameters
- $attributes : array<string|int, mixed> = []
- $valueSeparator : string = '='
- $fieldSeparator : string = ' '
- $quote : string = '"'
Return values
stringsetChildrenWrapClass()
public
setChildrenWrapClass(string|null $value) : static
Parameters
- $value : string|null
Return values
staticsetData()
Overwrite data in the object.
public
setData(string|array<string|int, mixed> $key[, mixed $value = null ]) : $this
$key can be string or array. If $key is string, the attribute value will be overwritten by $value
If $key is an array, it will overwrite all the data in the object.
Parameters
- $key : string|array<string|int, mixed>
- $value : mixed = null
Return values
$thissetDataChanges()
Clears data changes status
public
setDataChanges(bool $value) : $this
Parameters
- $value : bool
Return values
$thissetDataUsingMethod()
Set object data with calling setter method
public
setDataUsingMethod(string $key[, mixed $args = [] ]) : $this
Parameters
- $key : string
- $args : mixed = []
Return values
$thissetId()
Set object id field value
public
setId(mixed $value) : $this
Parameters
- $value : mixed
Return values
$thissetIdField()
Set node id field name
public
setIdField(string $idField) : $this
Parameters
- $idField : string
Return values
$thissetIdFieldName()
set name of object id field
public
setIdFieldName(string $name) : $this
Parameters
- $name : string
Return values
$thissetLevel()
public
setLevel(int $level) : $this
Parameters
- $level : int
Return values
$thissetOutermostClass()
public
setOutermostClass(string|null $value) : static
Parameters
- $value : string|null
Return values
staticsetParent()
Set node parent
public
setParent(Node $parent) : Node
Parameters
- $parent : Node
Return values
NodesetPathId()
public
setPathId(int $path) : $this
Parameters
- $path : int
Return values
$thissetTree()
Set node tree object
public
setTree(Tree $tree) : $this
Parameters
- $tree : Tree
Return values
$thistoArray()
Public wrapper for __toArray
public
toArray([array<string|int, mixed> $arrAttributes = [] ]) : array<string|int, mixed>
Parameters
- $arrAttributes : array<string|int, mixed> = []
Return values
array<string|int, mixed>toJson()
Public wrapper for __toJson
public
toJson([array<string|int, mixed> $arrAttributes = [] ]) : string
Parameters
- $arrAttributes : array<string|int, mixed> = []
Return values
stringtoString()
Public wrapper for __toString
public
toString([string $format = '' ]) : string
Will use $format as an template and substitute {{key}} for attributes
Parameters
- $format : string = ''
Return values
stringtoXml()
Public wrapper for __toXml
public
toXml([array<string|int, mixed> $arrAttributes = [] ][, string $rootName = 'item' ][, bool $addOpenTag = false ][, bool $addCdata = true ]) : string
Parameters
- $arrAttributes : array<string|int, mixed> = []
- $rootName : string = 'item'
- $addOpenTag : bool = false
- $addCdata : bool = true
Return values
stringunsetData()
Unset data from the object.
public
unsetData([string $key = null ]) : $this
$key can be a string only. Array will be ignored.
Parameters
- $key : string = null
Return values
$thisunsetOldData()
Unset old fields data from the object.
public
unsetOldData([string $key = null ]) : $this
$key can be a string only. Array will be ignored.
Parameters
- $key : string = null
Return values
$this__toJson()
Convert object attributes to JSON
protected
__toJson([array<string|int, mixed> $arrAttributes = [] ]) : string
Parameters
- $arrAttributes : array<string|int, mixed> = []
-
array of required attributes
Return values
string__toXml()
Convert object attributes to XML
protected
__toXml([array<string|int, mixed> $arrAttributes = [] ][, string $rootName = 'item' ][, bool $addOpenTag = false ][, bool $addCdata = true ]) : string
Parameters
- $arrAttributes : array<string|int, mixed> = []
-
array of required attributes
- $rootName : string = 'item'
-
name of the root element
- $addOpenTag : bool = false
- $addCdata : bool = true
Return values
string_addFullNames()
protected
_addFullNames() : mixed
_camelize()
protected
_camelize(string $name) : string
Parameters
- $name : string
Return values
string_construct()
Internal constructor not depended on params. Can be used for object initialization
protected
_construct() : void
_getData()
Get value from _data array without parse key
protected
_getData(string $key) : mixed
Parameters
- $key : string
_initOldFieldsMap()
Inits mapping array of object's previously used fields to new fields.
protected
_initOldFieldsMap() : mixed
Must be overloaded by descendants to set concrete fields map.
_prepareArray()
Set required array elements
protected
_prepareArray(array<string|int, mixed> &$arr[, array<string|int, mixed> $elements = [] ]) : array<string|int, mixed>
Parameters
- $arr : array<string|int, mixed>
- $elements : array<string|int, mixed> = []
Return values
array<string|int, mixed>_prepareSyncFieldsMap()
Called after old fields are inited. Forms synchronization map to sync old fields and new fields between each other.
protected
_prepareSyncFieldsMap() : $this
Return values
$this_underscore()
Converts field names for setters and getters
protected
_underscore(string $name) : string
$this->setMyField($value) === $this->setData('my_field', $value) Uses cache to eliminate unnecessary preg_replace
Parameters
- $name : string