Passed
Push — dev ( 4bc1ce...847377 )
by 世昌
02:56
created

ModuleTemplateCompiler::init()   A

Complexity

Conditions 2
Paths 2

Size

Total Lines 5
Code Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

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