Project

General

Profile

1
<?php
2

    
3
/*
4
 * This file is part of Twig.
5
 *
6
 * (c) 2010 Fabien Potencier
7
 *
8
 * For the full copyright and license information, please view the LICENSE
9
 * file that was distributed with this source code.
10
 */
11

    
12
/**
13
 * Represents a spaceless node.
14
 *
15
 * It removes spaces between HTML tags.
16
 *
17
 * @package    twig
18
 * @author     Fabien Potencier <fabien@symfony.com>
19
 */
20
class Twig_Node_Spaceless extends Twig_Node
21
{
22
    public function __construct(Twig_NodeInterface $body, $lineno, $tag = 'spaceless')
23
    {
24
        parent::__construct(array('body' => $body), array(), $lineno, $tag);
25
    }
26

    
27
    /**
28
     * Compiles the node to PHP.
29
     *
30
     * @param Twig_Compiler A Twig_Compiler instance
31
     */
32
    public function compile(Twig_Compiler $compiler)
33
    {
34
        $compiler
35
            ->addDebugInfo($this)
36
            ->write("ob_start();\n")
37
            ->subcompile($this->getNode('body'))
38
            ->write("echo trim(preg_replace('/>\s+</', '><', ob_get_clean()));\n")
39
        ;
40
    }
41
}
(21-21/22)