我正在开发一个PHP模板引擎 1 ,我希望允许PHP语法和模板语法。我的过程目前是将模板编译成php文件(将所有模板语法转换为PHP),将其存储到磁盘,然后使用include
2 加载它。只有在修改了原始模板或者从未进行过编译时才会进行编译。
但是,这种方法存在一些问题:
还有其他方法吗?
例如,以下代码:
<ul>
<?php forach( $list as $item ): ?>
<li>{{item}}</li>
<?php endforeach; ?>
</ul>
将编译为:
<ul>
<?php forach( $list as $item ): ?>
<li><?php echo $item ?></li>
<?php endforeach; ?>
</ul>
<小时/> [1] 我知道有数百个,但这个假设是特殊情况的答案。 目标是增强PHP内置的模板引擎,而不是像其他引擎一样完全替换它。
eval
,因为它既昂贵又危险。