内置标签
Sdopx自带了一些内置标签。 这些内置标签是Sdopx模板引擎的组成部分。 它们会被编译到php代码中,以取得最高的性能。
你不能建立相同名称的自定义标签; 同时你也不需要修改这些内置标签。
系统默认自带的内置标签表:
标签名称 | 功能介绍 |
---|---|
{assign} | 注册局部变量 |
{global} | 注册全局变量 |
{cycle} | 交替输出 |
{block} | 模板区域 |
{call} | 函数调用 |
{extends} | 模板继承 |
{for} | for 循环 |
{foreach},{foreachelse} | foreach 循环 |
{function} | 函数定义 |
{if},{elseif},{else} | 逻辑判断 |
{switch},{case},{default} | 条件选择 |
{include} | 引入包含模板 |
{ldelim},{rdelim} | 左定界符 与 右定界符 |
{literal} | 原义输出 |
{while} | while 循环 |
使用例子:
<!DOCTYPE html>
<html>
<head>
<title>{$title}</title>
<meta charset="utf-8"/>
</head>
<body>
{for $i=1;$i<2;$i++}
{assign $name='baa'}
{global $gname='this is global variable!'}
{$gname}
{/for}
{$gname}
{if true}
{assign $name='baa'}
{/if}
{$name}
</body>
</html>
自定义标签
Sdopx 允许自定义标签,在自定义标签时,不要覆盖原有内置的标签,每个标签名称 应该是唯一的。
一个简单的 自定义标签 示例
define('ROOT_DIR', __DIR__);
date_default_timezone_set('PRC');
require(ROOT_DIR . '/vendor/autoload.php');
use sdopx\Sdopx;
//定义插件 hello
class Hello
{
public function render(array $params, \sdopx\lib\Outer $outer)
{
$name = isset($params['name']) ? $params['name'] : '';
$outer->text('hello ' . $name);
}
}
//注册插件
Sdopx::registerPlugin('hello', new Hello());
$sdopx = new Sdopx();
//设置模板目录
$sdopx->setTemplateDir('./view');
//设置编译代码存放目录
$sdopx->setCompileDir('./runtime');
//注册变量
$sdopx->assign('name', 'wj008');
//显示模板
$sdopx->display('index.tpl');
模板:
{hello name=$name}</br>
{hello name='test'}
输出:
hello wj008</br>
hello test
更多插件定义 请参阅 代码编程-自定义插件