File manager - Edit - /home/opticamezl/www/newok/Tree.zip
Back
PK ╘\T���� � ImmutableNodeTrait.phpnu �[��� <?php /** * Joomla! Content Management System * * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Tree; // phpcs:disable PSR1.Files.SideEffects \defined('JPATH_PLATFORM') or die; // phpcs:enable PSR1.Files.SideEffects /** * Defines the trait for an Immutable Node Class. * * @since 4.0.0 */ trait ImmutableNodeTrait { /** * Parent node object * * @var NodeInterface * @since 1.6 */ protected $_parent = null; /** * Array of Children * * @var NodeInterface[] * @since 1.6 */ protected $_children = []; /** * Node left of this one * * @var NodeInterface * @since 1.6 */ protected $_leftSibling = null; /** * Node right of this one * * @var NodeInterface * @since 1.6 */ protected $_rightSibling = null; /** * Get the children of this node * * @param boolean $recursive False by default * * @return NodeInterface[] The children * * @since 4.0.0 */ public function &getChildren($recursive = false) { if ($recursive) { $items = []; foreach ($this->_children as $child) { $items[] = $child; $items = array_merge($items, $child->getChildren(true)); } return $items; } return $this->_children; } /** * Get the parent of this node * * @return NodeInterface|null * * @since 4.0.0 */ public function getParent() { return $this->_parent; } /** * Get the root of the tree * * @return ImmutableNodeInterface * * @since 4.0.0 */ public function getRoot() { $root = $this->getParent(); if (!$root) { return $this; } while ($root->hasParent()) { $root = $root->getParent(); } return $root; } /** * Test if this node has children * * @return boolean True if there is a child * * @since 4.0.0 */ public function hasChildren() { return (bool) \count($this->_children); } /** * Test if this node has a parent * * @return boolean True if there is a parent * * @since 4.0.0 */ public function hasParent() { return $this->getParent() != null; } /** * Returns the right or left sibling of a node * * @param boolean $right If set to false, returns the left sibling * * @return NodeInterface|null NodeInterface object of the sibling. * * @since 4.0.0 */ public function getSibling($right = true) { if ($right) { return $this->_rightSibling; } else { return $this->_leftSibling; } } } PK ╘\qLV� � NodeTrait.phpnu �[��� <?php /** * Joomla! Content Management System * * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Tree; // phpcs:disable PSR1.Files.SideEffects \defined('JPATH_PLATFORM') or die; // phpcs:enable PSR1.Files.SideEffects /** * Defines the trait for a Node Interface Trait Class. * * @since 4.0.0 */ trait NodeTrait { use ImmutableNodeTrait; /** * Set the parent of this node * * If the node already has a parent, the link is unset * * @param NodeInterface $parent NodeInterface for the parent to be set * * @return void * * @since 4.0.0 */ public function setParent(NodeInterface $parent) { if (!\is_null($this->_parent)) { $key = array_search($this, $this->_parent->_children); unset($this->_parent->_children[$key]); } $this->_parent = $parent; $this->_parent->_children[] = &$this; if (\count($this->_parent->_children) > 1) { end($this->_parent->_children); $this->_leftSibling = prev($this->_parent->_children); $this->_leftSibling->_rightSibling = $this; } } /** * Add child to this node * * If the child already has a parent, the link is unset * * @param NodeInterface $child The child to be added. * * @return void * * @since 4.0.0 */ public function addChild(NodeInterface $child) { $child->setParent($this); } /** * Remove a specific child * * @param NodeInterface $child Child to remove * * @return void * * @since 4.0.0 */ public function removeChild(NodeInterface $child) { $key = array_search($child, $this->_children); unset($this->_children[$key]); } /** * Function to set the left or right sibling of a node * * @param NodeInterface $sibling NodeInterface object for the sibling * @param boolean $right If set to false, the sibling is the left one * * @return void * * @since 4.0.0 */ public function setSibling(NodeInterface $sibling, $right = true) { if ($right) { $this->_rightSibling = $sibling; } else { $this->_leftSibling = $sibling; } } } PK ╘\�7��� � NodeInterface.phpnu �[��� <?php /** * Joomla! Content Management System * * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Tree; // phpcs:disable PSR1.Files.SideEffects \defined('JPATH_PLATFORM') or die; // phpcs:enable PSR1.Files.SideEffects /** * Interface for a node class * * @since 4.0.0 */ interface NodeInterface extends ImmutableNodeInterface { /** * Set the parent of this node * * If the node already has a parent, the link is unset * * @param NodeInterface $parent NodeInterface for the parent to be set * * @return void * * @since 4.0.0 */ public function setParent(NodeInterface $parent); /** * Add child to this node * * If the child already has a parent, the link is unset * * @param NodeInterface $child The child to be added. * * @return void * * @since 4.0.0 */ public function addChild(NodeInterface $child); /** * Remove a specific child * * @param NodeInterface $child Child to remove * * @return void * * @since 4.0.0 */ public function removeChild(NodeInterface $child); /** * Function to set the left or right sibling of a node * * @param NodeInterface $sibling NodeInterface object for the sibling * @param boolean $right If set to false, the sibling is the left one * * @return void * * @since 4.0.0 */ public function setSibling(NodeInterface $sibling, $right = true); } PK ╘\�y�`� � ImmutableNodeInterface.phpnu �[��� <?php /** * Joomla! Content Management System * * @copyright (C) 2019 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Tree; // phpcs:disable PSR1.Files.SideEffects \defined('JPATH_PLATFORM') or die; // phpcs:enable PSR1.Files.SideEffects /** * Interface for an immutable node class * * @since 4.0.0 */ interface ImmutableNodeInterface { /** * Get the children of this node * * @param boolean $recursive False by default * * @return NodeInterface[] The children * * @since 4.0.0 */ public function &getChildren($recursive = false); /** * Get the parent of this node * * @return NodeInterface|null * * @since 4.0.0 */ public function getParent(); /** * Get the root of the tree * * @return ImmutableNodeInterface * * @since 4.0.0 */ public function getRoot(); /** * Test if this node has children * * @return boolean True if there is a child * * @since 4.0.0 */ public function hasChildren(); /** * Test if this node has a parent * * @return boolean True if there is a parent * * @since 4.0.0 */ public function hasParent(); /** * Returns the right or left sibling of a node * * @param boolean $right If set to false, returns the left sibling * * @return NodeInterface|null NodeInterface object of the sibling. * * @since 4.0.0 */ public function getSibling($right = true); } PK ╘\T���� � ImmutableNodeTrait.phpnu �[��� PK ╘\qLV� � ! NodeTrait.phpnu �[��� PK ╘\�7��� � NodeInterface.phpnu �[��� PK ╘\�y�`� � � ImmutableNodeInterface.phpnu �[��� PK N �#
| ver. 1.4 |
Github
|
.
| PHP 8.3.23 | Generation time: 0 |
proxy
|
phpinfo
|
Settings