【发布时间】:2011-08-11 18:45:27
【问题描述】:
我正在寻找一个非常基本的 PHP 模板系统。现在我正在使用:
/**
* Renders a single line. Looks for {{ var }}
*
* @param string $string
* @param array $parameters
*
* @return string
*/
function renderString($string, array $parameters)
{
$replacer = function ($match) use ($parameters)
{
return isset($parameters[$match[1]]) ? $parameters[$match[1]] : $match[0];
};
return preg_replace_callback('/{{\s*(.+?)\s*}}/', $replacer, $string);
}
(来自这里:PHP - Extremely light templating system)
但我只能分配和显示变量。我还需要一种方法来使用 IF 和循环数组等条件。
我找到了 Rain TPL - http://www.raintpl.com/Quick-Start/#if - 这与我正在寻找的内容非常接近,但有一些我不喜欢它的地方:
- 它允许正在编写模板的家伙运行 PHP 函数(在 IF 条件内)。
- 它会写入缓存和 php 文件,这是我不想要的
那么,有没有与此类似但更“基本”、更严格、更安全的东西?
【问题讨论】:
-
也许您可以详细说明为什么您不想要任何缓存?你的需求有点矛盾。因为你想要 if 子句和东西,所以编译或多或少是要走的路,如果你想走得快。人们建议的 Twig 是一个很好的选择。
-
为什么要放弃缓存的速度优势?
标签: php parsing templates template-engine