mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 12:42:48 +08:00
改进模板缓存检测方式;增加全局布局文件开关
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
{layout name="layout" replace="[__REPLACE__]" /}
|
||||
{layout name="layout2" replace="[__REPLACE__]" /}
|
||||
<div>
|
||||
{include file="include" name="info" value="$info.value" /}
|
||||
{block name="main"}
|
||||
|
||||
@@ -1 +1 @@
|
||||
include2
|
||||
{$info.value}:
|
||||
@@ -1,2 +1,2 @@
|
||||
<nav>[__REPLACE__]
|
||||
</nav>
|
||||
<div>{__CONTENT__}
|
||||
</div>
|
||||
2
tests/thinkphp/library/think/layout2.html
Normal file
2
tests/thinkphp/library/think/layout2.html
Normal file
@@ -0,0 +1,2 @@
|
||||
<nav>[__REPLACE__]
|
||||
</nav>
|
||||
@@ -27,7 +27,7 @@ class templateTest extends \PHPUnit_Framework_TestCase
|
||||
$content = <<<EOF
|
||||
{\$name.a.b}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo \$name['a']['b']; ?>
|
||||
EOF;
|
||||
|
||||
@@ -37,7 +37,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a??'test'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo isset(\$name['a']) ? \$name['a'] : 'test'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -47,7 +47,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a?='test'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php if(!empty(\$name['a'])) echo 'test'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -57,7 +57,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a?:'test'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo !empty(\$name['a'])?\$name['a']:'test'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -67,7 +67,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a?\$name.b:'no'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo !empty(\$name['a'])?\$name['b']:'no'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -77,7 +77,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a==\$name.b?='test'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php if(\$name['a']==\$name['b']) echo 'test'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -87,7 +87,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a==\$name.b?'a':'b'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo (\$name['a']==\$name['b'])?'a':'b'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -97,7 +97,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a|default='test'==\$name.b?'a':'b'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo ((isset(\$name['a']) && (\$name['a'] !== '')?\$name['a']:'test')==\$name['b'])?'a':'b'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -107,7 +107,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$name.a|trim==\$name.b?='eq'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php if(trim(\$name['a'])==\$name['b']) echo 'eq'; ?>
|
||||
EOF;
|
||||
|
||||
@@ -117,7 +117,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{:ltrim(rtrim(\$name.a))}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo ltrim(rtrim(\$name['a'])); ?>
|
||||
EOF;
|
||||
|
||||
@@ -127,7 +127,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{~echo(trim(\$name.a))}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo(trim(\$name['a'])); ?>
|
||||
EOF;
|
||||
|
||||
@@ -137,7 +137,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{++\$name.a}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo ++\$name['a']; ?>
|
||||
EOF;
|
||||
|
||||
@@ -147,7 +147,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{/*\$name*/}
|
||||
EOF;
|
||||
$data = '';
|
||||
$data = '';
|
||||
|
||||
$template->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
@@ -155,7 +155,7 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$0a}
|
||||
EOF;
|
||||
$data = '{$0a}';
|
||||
$data = '{$0a}';
|
||||
|
||||
$template->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
@@ -240,54 +240,13 @@ EOF;
|
||||
$content = <<<EOF
|
||||
{\$info2.b|trim?'yes':'no'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo trim(\$info2->b)?'yes':'no'; ?>
|
||||
EOF;
|
||||
$template2->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
}
|
||||
|
||||
public function testTag()
|
||||
{
|
||||
$config['view_path'] = dirname(__FILE__) . '/';
|
||||
$config['view_suffix'] = '.html';
|
||||
$template = new Template($config);
|
||||
$files = ['extend' => 'extend', 'include' => 'include'];
|
||||
$template->assign('files', $files);
|
||||
|
||||
$content = <<<EOF
|
||||
{extend name="\$files.extend" /}
|
||||
{block name="side"}
|
||||
{include file="\$files.include" name="\$user.name" value="\$user.account" /}
|
||||
{\$message}{literal}{\$message}{/literal}
|
||||
{/block}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<nav>
|
||||
<div>
|
||||
<input name="info" value="<?php echo \$info['value']; ?>">
|
||||
include2
|
||||
|
||||
|
||||
<input name="<?php echo \$user['name']; ?>" value="<?php echo \$user['account']; ?>">
|
||||
include2
|
||||
<?php echo \$message; ?>{\$message}
|
||||
|
||||
|
||||
mainbody
|
||||
|
||||
|
||||
|
||||
{\$name}
|
||||
|
||||
<?php echo 'php code'; ?>
|
||||
</div>
|
||||
</nav>
|
||||
EOF;
|
||||
$template->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
}
|
||||
|
||||
public function testThinkVar()
|
||||
{
|
||||
$config['tpl_begin'] = '{';
|
||||
@@ -321,7 +280,7 @@ EOF;
|
||||
{\$Think.SITE_NAME}<br/>
|
||||
{\$Think.SITE.URL}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
$data = <<<EOF
|
||||
<?php echo \$_SERVER['SERVER_NAME']; ?><br/>
|
||||
<?php echo \$_GET['action']; ?><br/>
|
||||
<?php echo \$_POST['action']; ?><br/>
|
||||
@@ -353,22 +312,54 @@ EOF;
|
||||
'strip_space' => true,
|
||||
'view_path' => dirname(__FILE__) . '/',
|
||||
];
|
||||
$data = ['name' => 'value'];
|
||||
$data = ['name' => 'value'];
|
||||
$template->display('display', $data, $config);
|
||||
$this->expectOutputString('value');
|
||||
}
|
||||
|
||||
public function testFetch()
|
||||
{
|
||||
$template = new Template();
|
||||
$template->view_path = dirname(__FILE__) . '/';
|
||||
$data = ['name' => 'value'];
|
||||
$content = <<<EOF
|
||||
{\$name}
|
||||
EOF;
|
||||
$config['view_path'] = dirname(__FILE__) . '/';
|
||||
$config['view_suffix'] = '.html';
|
||||
$config['layout_on'] = true;
|
||||
$config['layout_name'] = 'layout';
|
||||
$template = new Template($config);
|
||||
$files = ['extend' => 'extend', 'include' => 'include'];
|
||||
$template->assign('files', $files);
|
||||
$template->assign('user', ['name' => 'name', 'account' => 100]);
|
||||
$template->assign('message', 'message');
|
||||
$template->assign('info', ['value' => 'value']);
|
||||
|
||||
$template->fetch($content, $data);
|
||||
$this->expectOutputString('value');
|
||||
$content = <<<EOF
|
||||
{extend name="\$files.extend" /}
|
||||
{block name="side"}
|
||||
{include file="\$files.include" name="\$user.name" value="\$user.account" /}
|
||||
{\$message}{literal}{\$message}{/literal}
|
||||
{/block}
|
||||
EOF;
|
||||
$content2 = <<<EOF
|
||||
<nav>
|
||||
<div>
|
||||
<input name="info" value="value">
|
||||
value:
|
||||
|
||||
|
||||
<input name="name" value="100">
|
||||
value:
|
||||
message{\$message}
|
||||
|
||||
|
||||
mainbody
|
||||
|
||||
|
||||
|
||||
{\$name}
|
||||
|
||||
php code</div>
|
||||
</nav>
|
||||
EOF;
|
||||
$template->fetch($content);
|
||||
$this->expectOutputString($content2);
|
||||
}
|
||||
|
||||
public function testVarAssign()
|
||||
|
||||
Reference in New Issue
Block a user