【发布时间】:2016-07-28 06:58:28
【问题描述】:
我想用 php regex 创建一个模板引擎
我的模板引擎是以下代码
<?php
class tmp
{
public function assign($name,$val){
$GLOBALS[$name]=$val;
}
public function compile($buffer){
$buffer= '?> '.preg_replace('~\{\!\!\s*\$(\w+)\s*\!\!\}~', '<?php echo $GLOBALS["$1"]; ?>', $buffer);
file_put_contents('compiled.php', $buffer);
return $buffer;
}
public function run($run){
return eval($run);
}
}
?>
我的主题是以下代码
{!! $bar !!}
编译后的主题是
?>
<?php echo $GLOBALS["bar"]; ?>
我使用 $GLOBALS 访问变量 但是在刀片中编译的代码如下
<?php echo $bar; ?>
blade 如何通过名称直接访问已定义的变量?
【问题讨论】:
-
查看 laravel 的源码
-
@CharlotteDunois laravel 太大,很难找到一个部分-我看了但找不到它们
标签: php global-variables blade template-engine