Example #1
0
 public function registerChild(NodeInterface $node, $overwrite = false, $prepend = false)
 {
     $this->registerAdopters();
     if ($node->getParent() !== $this) {
         throw new \RuntimeException('Nodes being registered must return this node from their getParentNode method.');
     }
     $name = $node->getName();
     if (!$overwrite && isset($this->childNodes[$name])) {
         throw new \RuntimeException(sprintf('Node name %s is already registered.', $name));
     }
     if ($prepend) {
         $this->childNodes = array_merge([$name => null], $this->getChildren(), [$name => $node]);
     } else {
         $this->childNodes[$name] = $node;
     }
 }