FluentDOM\Node\MutationMacro::expand PHP Method

expand() public static method

public static expand ( DOMNode $context, $nodes )
$context DOMNode
    public static function expand(\DOMNode $context, $nodes)
    {
        $document = $context instanceof \DOMDocument ? $context : $context->ownerDocument;
        $result = $document->createDocumentFragment();
        if (!self::isTraversableOfNodes($nodes)) {
            $nodes = [$nodes];
        }
        foreach ($nodes as $node) {
            if ($node instanceof \DOMNode) {
                self::add($result, $node);
            } elseif (self::isStringCastable($node)) {
                $result->appendChild($document->createTextNode((string) $node));
            } else {
                throw new \InvalidArgumentException('Argument needs to be a dom node or castable into a string');
            }
        }
        return $result->childNodes->length > 0 ? $result : NULL;
    }

Usage Example

Beispiel #1
0
 /**
  * Append nodes as children to the node itself
  *
  * @param mixed $nodes
  */
 public function append($nodes)
 {
     /** @var \DOMNode|Implementation $this */
     if ($nodes = MutationMacro::expand($this, $nodes)) {
         $this->appendChild($nodes);
     }
 }
All Usage Examples Of FluentDOM\Node\MutationMacro::expand