PHP 标签
Testing Is Documentation
tests/View/Compiler/CompilerPhpTest.php
PHP 代码可以和标签在模板文件中混合使用,可以在模板文件里面书写任意的 PHP 语句代码 ,包括下面两种方式。
基本使用
public function testBaseUse(): void
{
$parser = $this->createParser();
$source = <<<'eot'
<php>echo 'Hello,world!';</php>
eot;
$compiled = <<<'eot'
<?php echo 'Hello,world!'; ?>
eot;
$this->assertSame($compiled, $parser->doCompile($source, null, true));
}
原始 PHP
public function testPhpSelf(): void
{
$parser = $this->createParser();
$source = <<<'eot'
<?php echo 'Hello,world!'; ?>
eot;
$compiled = <<<'eot'
<?php echo 'Hello,world!'; ?>
eot;
$this->assertSame($compiled, $parser->doCompile($source, null, true));
}
TIP
不过这种方式来使用 PHP 脚本,这是我们大力推荐的写法,用最原始的 PHP 开发应用是我们共同的追求。
PHP 内部不能使用标签
PHP 标签或者 PHP 代码里面就不能再使用标签(包括 code 标签和 node 标签),因此下面的几种方式都是无效的:
public function testErrorExample(): void
{
$parser = $this->createParser();
// 错误的写法
$source = <<<'eot'
<php>
{if $hello == ''}
Yet !
{/if}
</php>
eot;
$compiled = <<<'eot'
<?php
<?php if ($hello == ''): ?>
Yet !
<?php endif; ?>
?>
eot;
$this->assertSame($compiled, $parser->doCompile($source, null, true));
}
TIP
程序运行结果是抛出致命错误,这种写法是错误的。