Exemple #1
0
    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());
    }
Exemple #2
0
 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;
 }