public function test_render() { $tag = new Builder_Xml('tag1'); $tag('tag2'); $tag('tag3', array('class' => 'my-class')); $tag('tag4', array('class' => 'my-class-2'), function ($tag) { $tag('tag5', array('class' => 'my-class-3'), function ($tag) { $tag('tag6', array('class' => 'my-class-4'), 'content-tag6'); $tag('tag7', array('class' => 'my-class-5')); $tag->add('some text'); }); }); $tag('tag8', array('class' => 'my-class-6'), 'content'); $expected = <<<HTML <tag1> <tag2/> <tag3 class="my-class"/> <tag4 class="my-class-2"> <tag5 class="my-class-3"> <tag6 class="my-class-4">content-tag6</tag6> <tag7 class="my-class-5"/> some text </tag5> </tag4> <tag8 class="my-class-6">content</tag8> </tag1> HTML; $this->assertSame($expected, $tag->render()); }
public function render_content($indent = 0) { $content = $this->_content; if ($content instanceof Closure) { $content = $content($this, $this->_context); } if ($content) { $content = Builder_Xml::render_tag($content, $indent); } if ($this->_children) { $content .= join(Builder_Xml::$pretty ? "\n" : '', array_map(function ($content) use($indent) { return Builder_Xml::render_tag($content, $indent); }, (array) $this->_children)); } return $content; }