mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-01 20:52:48 +08:00
改进变量标签的正则表达式
This commit is contained in:
@@ -52,7 +52,16 @@ EOF;
|
||||
<?php endforeach; endif; else: echo "" ;endif; ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
$this->assertEquals($data, $content);
|
||||
|
||||
$content = <<<EOF
|
||||
{volist name=":explode(',','1,2,3,4,5')" id="vo" key="key" offset="1" length="3"}
|
||||
{\$vo}
|
||||
{/volist}
|
||||
EOF;
|
||||
|
||||
$template->fetch($content);
|
||||
$this->expectOutputString('234');
|
||||
}
|
||||
|
||||
public function testForeach()
|
||||
@@ -74,18 +83,25 @@ EOF;
|
||||
$this->assertEquals($content, $data);
|
||||
|
||||
$content = <<<EOF
|
||||
{foreach name="list" id="val" key="key"}
|
||||
{foreach name="list" id="val" key="key" empty="empty"}
|
||||
|
||||
{/foreach}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php if(is_array(\$list)): foreach(\$list as \$key=>\$val): ?>
|
||||
|
||||
<?php endforeach; endif; ?>
|
||||
<?php endforeach; endif; ?><?php if(empty(\$list)): echo '"empty'; endif; ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
|
||||
$content = <<<EOF
|
||||
{foreach name=":explode(',', '1,2,3,4,5')" id="val" key="key" index="index" offset="1" length="3"}
|
||||
{\$val}
|
||||
{/foreach}
|
||||
EOF;
|
||||
$template->fetch($content);
|
||||
$this->expectOutputString('234');
|
||||
}
|
||||
|
||||
public function testIf()
|
||||
@@ -125,9 +141,12 @@ EOF;
|
||||
{case \$a /}
|
||||
a
|
||||
{/case}
|
||||
{case b}
|
||||
{case b|c}
|
||||
b
|
||||
{/case}
|
||||
{case d}
|
||||
d
|
||||
{/case}
|
||||
{default /}
|
||||
default
|
||||
{/switch}
|
||||
@@ -137,9 +156,12 @@ EOF;
|
||||
<?php case \$a: ?>
|
||||
a
|
||||
<?php break; ?>
|
||||
<?php case "b": ?>
|
||||
<?php case "b":case "c": ?>
|
||||
b
|
||||
<?php break; ?>
|
||||
<?php case "d": ?>
|
||||
d
|
||||
<?php break; ?>
|
||||
<?php default: ?>
|
||||
default
|
||||
<?php endswitch; ?>
|
||||
@@ -154,12 +176,12 @@ EOF;
|
||||
$cx = new Cx($template);
|
||||
|
||||
$content = <<<EOF
|
||||
{eq name="\$var.a" value="0"}
|
||||
{eq name="\$var.a" value="\$var.b"}
|
||||
default
|
||||
{/eq}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php if(\$var['a'] == '0'): ?>
|
||||
<?php if(\$var['a'] == \$var['b']): ?>
|
||||
default
|
||||
<?php endif; ?>
|
||||
EOF;
|
||||
@@ -315,6 +337,13 @@ default
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
|
||||
$content = <<<EOF
|
||||
{between name=":floor(5.1)" value="1,5"}yes{/between}
|
||||
{notbetween name=":ceil(5.1)" value="1,5"}no{/notbetween}
|
||||
EOF;
|
||||
$template->fetch($content);
|
||||
$this->expectOutputString('yesno');
|
||||
}
|
||||
|
||||
public function testPresent()
|
||||
@@ -419,10 +448,10 @@ EOF;
|
||||
$cx = new Cx($template);
|
||||
|
||||
$content = <<<EOF
|
||||
{import file="base" value="\$name.a" /}
|
||||
{import file="base?ver=1.0" value="\$name.a" /}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php if(isset(\$name['a'])): ?><script type="text/javascript" src="__ROOT__/Public/base.js"></script><?php endif; ?>
|
||||
<?php if(isset(\$name['a'])): ?><script type="text/javascript" src="__ROOT__/Public/base.js?ver=1.0"></script><?php endif; ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
@@ -437,10 +466,10 @@ EOF;
|
||||
$this->assertEquals($content, $data);
|
||||
|
||||
$content = <<<EOF
|
||||
{import file="base" type="php" /}
|
||||
{import file="base,common" type="php" /}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php import("base"); ?>
|
||||
<?php import("base"); ?><?php import("common"); ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
@@ -483,6 +512,15 @@ EOF;
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php \$total = '0'; ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
|
||||
$content = <<<EOF
|
||||
{assign name="total" value=":count(\$list)" /}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php \$total = count(\$list); ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
@@ -498,6 +536,15 @@ EOF;
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php define('INFO_NAME', 'test'); ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
|
||||
$content = <<<EOF
|
||||
{define name="INFO_NAME" value="\$name" /}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php define('INFO_NAME', \$name); ?>
|
||||
EOF;
|
||||
$cx->parseTag($content);
|
||||
$this->assertEquals($content, $data);
|
||||
@@ -508,8 +555,8 @@ EOF;
|
||||
$template = new template();
|
||||
|
||||
$content = <<<EOF
|
||||
{for start="1" end="10" comparison="lt" step="1" name="ii" }
|
||||
{\$ii}
|
||||
{for start="1" end=":strlen(1000000000)" comparison="lt" step="1" name="i" }
|
||||
{\$i}
|
||||
{/for}
|
||||
EOF;
|
||||
$template->fetch($content);
|
||||
|
||||
@@ -25,10 +25,10 @@ class templateTest extends \PHPUnit_Framework_TestCase
|
||||
$template = new Template();
|
||||
|
||||
$content = <<<EOF
|
||||
{\$name.a.b|default='test'}
|
||||
{\$name.a.b}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php echo (isset(\$name['a']['b']) && (\$name['a']['b'] !== '')?\$name['a']['b']:'test'); ?>
|
||||
<?php echo \$name['a']['b']; ?>
|
||||
EOF;
|
||||
|
||||
$template->parse($content);
|
||||
@@ -125,10 +125,10 @@ EOF;
|
||||
$this->assertEquals($data, $content);
|
||||
|
||||
$content = <<<EOF
|
||||
{+\$name.a}
|
||||
{++\$name.a}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php echo +\$name['a']; ?>
|
||||
<?php echo ++\$name['a']; ?>
|
||||
EOF;
|
||||
|
||||
$template->parse($content);
|
||||
@@ -144,6 +144,41 @@ EOF;
|
||||
|
||||
}
|
||||
|
||||
public function testVarFunction()
|
||||
{
|
||||
$template = new Template();
|
||||
|
||||
$content = <<<EOF
|
||||
{\$name.a.b|default='test'}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php echo (isset(\$name['a']['b']) && (\$name['a']['b'] !== '')?\$name['a']['b']:'test'); ?>
|
||||
EOF;
|
||||
|
||||
$template->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
|
||||
$content = <<<EOF
|
||||
{\$create_time|date="y-m-d",###}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php echo date("y-m-d",\$create_time); ?>
|
||||
EOF;
|
||||
|
||||
$template->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
|
||||
$content = <<<EOF
|
||||
{\$create_time|trim|substr=0,3}
|
||||
EOF;
|
||||
$data = <<<EOF
|
||||
<?php echo substr(trim(\$create_time),0,3); ?>
|
||||
EOF;
|
||||
|
||||
$template->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
}
|
||||
|
||||
public function testVarIdentify()
|
||||
{
|
||||
$config['tpl_begin'] = '<#';
|
||||
@@ -177,7 +212,6 @@ EOF;
|
||||
$data = <<<EOF
|
||||
<?php echo ((is_array(\$info)?\$info['a']:\$info->a) !== ''?(is_array(\$info)?\$info['a']:\$info->a):'test')?'yes':'no'; ?>
|
||||
EOF;
|
||||
|
||||
$template->parse($content);
|
||||
$this->assertEquals($data, $content);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user