优代部分代码;block标签内可以使用{__block__}来引用所继承模板中相应block标签的内容;

模板包含文件记录及更新时间直接写入缓存的模板中;改进标签别名的处理方式,别名不再定义方法;
去除include标签传参自动生成变量的代码;cx类增加function方法,用来生成匿名函数,结合{~$函数名()}可用于递归的实现。
This commit is contained in:
oldrind
2016-03-11 21:58:18 +08:00
parent 542a3333d6
commit 71dbdcb874
9 changed files with 390 additions and 413 deletions

View File

@@ -216,6 +216,16 @@ EOF;
$template->parse($content);
$this->assertEquals($data, $content);
$content = <<<EOF
<#\$info.a?='test'#>
EOF;
$data = <<<EOF
<?php if((is_array(\$info)?\$info['a']:\$info->a)) echo 'test'; ?>
EOF;
$template->parse($content);
$this->assertEquals($data, $content);
$content = <<<EOF
<#\$info.a==\$info.b?='test'#>
EOF;
@@ -332,17 +342,29 @@ EOF;
$content = <<<EOF
{extend name="\$files.extend" /}
{block name="main"}
main
{block name="side"}
{__BLOCK__}
{include file="\$files.include" name="\$user.name" value="\$user.account" /}
{\$message}{literal}{\$message}{/literal}
{/block}
{block name="mainbody"}
mainbody
{/block}
{/block}
EOF;
$content2 = <<<EOF
<nav>
<div>
header
<div id="wrap">
<input name="info" value="value">
value:
main
side
<input name="name" value="100">
value:
@@ -360,6 +382,8 @@ value:
EOF;
$template->fetch($content);
$this->expectOutputString($content2);
// $template->parse($content);
// var_dump($content);
}
public function testVarAssign()