-
Notifications
You must be signed in to change notification settings - Fork 6
/
Copy pathSummaryDoc.php
97 lines (85 loc) · 2.44 KB
/
SummaryDoc.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
<?php
declare(strict_types=1);
namespace Tests\View;
use Leevel\Kernel\Utils\Api;
#[Api([
'title' => 'Summary',
'zh-CN:title' => '概述',
'zh-TW:title' => '概述',
'path' => 'template/index',
'zh-CN:description' => <<<'EOT'
QueryPHP 内置二种方式的模板引擎,一种是类似于 Smart 模板的 Code 语法,一种是 HTML 标签式的 Node 语法。
* code 语法,侧重简单实用,输出变量、注释等
* Node 语法,严谨务实,输出循环、流程控制等
例外,二种语法随心嵌套,随意使用,QueryPHP 模板引擎底层分析器和编译器非常健壮,完美运行 10 年。
QueryPHP 模板引擎技术来自于 Jecat,一款无与伦比的技术大餐,有幸在 2010 接触到这个框架,通过这个框架学到了很多。
EOT,
])]
class SummaryDoc
{
#[Api([
'zh-CN:title' => 'Code 语法',
'zh-CN:description' => <<<'EOT'
侧重简单实用。
EOT,
'lang' => 'html',
])]
public function doc1(): void
{
<<<'EOT'
{{ $name }}
EOT;
}
#[Api([
'zh-CN:title' => 'Node 语法',
'zh-CN:description' => <<<'EOT'
严谨务实。
EOT,
'lang' => 'html',
])]
public function doc2(): void
{
<<<'EOT'
{% if cond="'You' == $name" %}
欢迎进入 QueryPHP 开发者世界!
{% :if %}
EOT;
}
#[Api([
'zh-CN:title' => '拒绝交叉',
'zh-CN:description' => <<<'EOT'
下面这种写法就是错误的,模板引擎将无法正确解析。
EOT,
'lang' => 'html',
])]
public function doc4(): void
{
<<<'EOT'
{% $name %}
{{ if cond="'You' == $name" }}
欢迎进入 QueryPHP 开发者世界!
{{ :if }}
EOT;
}
#[Api([
'zh-CN:title' => 'PHP 方式',
'zh-CN:description' => <<<'EOT'
如果你不习惯使用使用内置的模板引擎,你也可以完全使用 PHP 自生来写。
EOT,
])]
public function doc5(): void
{
<<<'EOT'
<?php if ('You' == $name): ?>
欢迎进入 QueryPHP 开发者世界!
<?php endif; ?>
EOT;
}
#[Api([
'zh-CN:title' => '扩展支持',
'zh-CN:description' => <<<'EOT'
为了减少学习成本,系统还支持 PHP 自身作为 UI 模板。
EOT,
])]
public function doc6(): void {}
}