Passed
Push — master ( b817d9...04ae87 )
by 世昌
02:23
created

ModuleTemplateCompiler::__construct()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
eloc 4
dl 0
loc 6
rs 10
c 0
b 0
f 0
cc 2
nc 2
nop 0
1
<?php
2
3
namespace suda\application\template;
4
5
use suda\application\template\compiler\Tag;
6
use suda\application\template\compiler\Compiler;
7
8
/**
9
 * 可执行命令表达式
10
 *
11
 */
12
class ModuleTemplateCompiler extends Compiler
13
{
14
    /**
15
     * 定义的标签
16
     *
17
     * @var array
18
     */
19
    protected $tag = [
20
        'raw' => [
21
            '{{!', '}}',
22
            '<?php echo $code; ?>',
23
        ],
24
        'comment' => [
25
            '{--', '--}',
26
            '<?php /* $code */ ?>',
27
        ],
28
        'echo' => [
29
            '{{', '}}',
30
            '<?php echo htmlspecialchars($this->application->_($code), ENT_SUBSTITUTE | ENT_QUOTES | ENT_HTML5); ?>',
31
        ],
32
        'string' => [
33
            '{=', '}',
34
            '<?php echo htmlspecialchars($this->application->_("$code"), ENT_SUBSTITUTE | ENT_QUOTES | ENT_HTML5); ?>',
35
        ],
36
        'raw-string' => [
37
            '@{', '}',
38
            '<?php echo htmlspecialchars($code, ENT_SUBSTITUTE | ENT_QUOTES | ENT_HTML5); ?>',
39
        ],
40
        'event' => [
41
            '{:', '}',
42
            '<?php $this->application->event()->exec("$code", [$this]); ?>',
43
        ],
44
    ];
45
46
    public function init()
47
    {
48
        $this->registerCommand(new ModuleTemplateCommand);
49
        foreach ($this->tag as $name => $value) {
50
            $this->registerTag(new Tag($name, $value[0], $value[1], $value[2]));
51
        }
52
    }
53
}
54