function __toString() { $mapimplode = _Array::recursiveMerge()->map(function ($e) { return $e . ''; })->implode(''); $elem = TagNode::element($this->name, $this->attributes); return '' . $elem($mapimplode($this->content)); }
/** * @param array ...$data * @return string */ public function __invoke(...$data) { $attNode = TagNode::attributes(); return "<" . $this->name . $attNode($this->attributes) . ">" . $data[0] . "</" . $this->name . ">"; }
public function testTag() { $l1 = new Tag('li', ['class' => 'le li'], ['aaa']); $l2 = new Tag('li', ['class' => 'le'], ['aaa']); $data = new Tag('ul', ['class' => 'ul'], [$l1, $l2]); $ul = TagNode::tag(); $this->assertEquals($ul($data), '<ul class="ul"><li class="le li">aaa</li><li class="le">aaa</li></ul>'); }