]>
Commit | Line | Data |
---|---|---|
a4565e88 NL |
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 | * @author Fabien Potencier <fabien@symfony.com> | |
18 | */ | |
19 | class Twig_Node_Spaceless extends Twig_Node | |
20 | { | |
21 | public function __construct(Twig_NodeInterface $body, $lineno, $tag = 'spaceless') | |
22 | { | |
23 | parent::__construct(array('body' => $body), array(), $lineno, $tag); | |
24 | } | |
25 | ||
26 | /** | |
27 | * Compiles the node to PHP. | |
28 | * | |
29 | * @param Twig_Compiler A Twig_Compiler instance | |
30 | */ | |
31 | public function compile(Twig_Compiler $compiler) | |
32 | { | |
33 | $compiler | |
34 | ->addDebugInfo($this) | |
35 | ->write("ob_start();\n") | |
36 | ->subcompile($this->getNode('body')) | |
37 | ->write("echo trim(preg_replace('/>\s+</', '><', ob_get_clean()));\n") | |
38 | ; | |
39 | } | |
40 | } |