Exemple #1
0
 /**
  * Remove if node is empty
  *
  * @see ConfigHelper::removeEmptyXpath()
  * @param array               $names  Node names list in sequence from XPath
  * @param ConfigInstance      $node
  * @param ConfigInstance|null $parent
  * @return $this
  */
 public function removeIfNodeEmpty($names, $node, $parent = null)
 {
     if ($node && $node->children()) {
         $parentParent = $parent;
         $parent = $node;
         /** @var ConfigInstance $node */
         $node = $node->{current($names)};
         if (!next($names)) {
             return $this;
         }
         $this->removeIfNodeEmpty($names, $node, $parent);
         if ($parentParent) {
             //try to remove original parent
             $this->removeIfNodeEmpty($names, $parent, $parentParent);
         }
     } elseif ($node && $parent && !$node->hasComment()) {
         unset($parent->{$node->getName()});
     }
     return $this;
 }