模板
Hello World!
按照前一章中 mkv 路由规则,我们任一输入一个地址:/index.php/english/about-resume
,提示:Template english/about/resume.htm
NOT Found!
按提示添加模板文件,编辑介绍内容即OK;这里不用控制器,直接添加网页,就是如此简单。
解析Markdown
模板中 可 轻松解析Markdown;整个ysKit-文档就是两个模板文件和系列 .md 文档组成。
- 显示md文档:
<?= md_view('mds/ch003'); ?>
; - MD标题:
<?= md_view('mds/ch003',1); ?>
; - md里面可用:
data/config/basic.php
/$_cbase['paths']
里面设置的路径如:{=static}
->得到/yskit/static
。
默认模板规则
- 首页(url与模板对应)
[/
] = [/root/
] = [/root/home
] ->(模板)/root/home/_home.htm
[/part/
] = [/part/home
] ->(模板)/part/home/_home.htm
[/part/mod
] ->(模板)/part/mod/_home.htm
- 列表页(url与模板对应)
['/part/mod-k1'] ->(模板)/part/mod/k1.htm
或 默认/part/mod/_list.htm
['/part/mod-k1-v1'] ->(模板)/part/mod/k1-v1.htm
或 默认/part/mod/_list-v1.htm
- 详情页(url与模板对应)
['/part/mod.k2'] ->(模板)/part/mod/k2.htm
或 默认/part/mod/_view.htm
['/part/mod.k2.v2'] ->(模板)/part/mod/k2.v2.htm
或 默认/part/mod/_view.v2.htm
模板类型
默认模板类型为.htm
,如果要返回xml
、json
等类型,需要控制器指定;请看后面的相关内容。
控制器
返回数据
以前面的 url 地址 /index.php/english/about-resume
为例,假如我们要在控制器中返回数据给模板使用:
// 文件: ctrl/english/aboutCtrl.php
class aboutCtrl extends Ctrl{
function resumeAct(){
$data = [
'act'=>__function__,
'msg'=>'数据来至 aboutCtrl.resumeAct ...'
];
$this->tpl($data);
}
}
// 模板中调用: <?=$msg?>
返回各种格式
以上代码,稍微修改,返回格式丰富多彩!
$this->tpl($data, 'about-pub2'); // 指定模板
$this->tpl($data, 'root/_pub/info'); // 跨分组指定模板
$this->tpl($data, 'xml3.xml'); // 指定xml模板(返回xml)
$this->api($data); // 返回api的JSON数据
上述返回api的JSON数据,如果url地址栏中输入 ?debug=1
json数据立马格式化:
{
"errno": 0,
"errmsg": "",
"data": {
"act": "resumeAct",
"msg": "数据来至 aboutCtrl.resumeAct ..."
},
"debug": {
"ram": "0.513(MB)",
"used": "14.001(ms)",
"vp": "{xxx}/english\/about-resume?debug=1",
"rp": "",
"ip": "ra=::1",
"ua": "Mozilla\/5.0 ...",
"req": "GET"
}
}
直接返回
不需要 api,tpl
方法 直接返回:
function stateAct(){
echo "success";
// echo "fail";
// echo "<h3>hi return html</h3>";
// echo json_encode(['act'=>'ujsonAct']);
}
ysKit(ys工具包) DIY
-
多分组共用方法
- 假如: english(英文版) 与 french(法文版) 一些方法需要共用;
- 定义一个 trait,文件:
ctrl/trait/pubx1Trait.php
,里面写共用方法; - 需要使用共用方法的控制器中用
use pubx1Trait;
引用即可。
-
模型以数字开头
- 则类名称已
_
开头(因为类名称不能以数字开头); - 见 3d-Tester,url:
/index.php/3d-Tester
;文件:/ctrl/root/3dCtrl.php
;类名称:_3dCtrl
。 - key(类别id)以数字开头,则方法名称以
_
开头:见 url/index.php/3d-9lay
演示。
- 则类名称已
-
控制器 重写
doStart
方法:- 禁止访问,见 文件:
/ctrl/root/_pubCtrl.php
。
- 禁止访问,见 文件: