什么是PHP的一个好的,安全的模板系统?

Wil*_*elm 3 php templates

(摘要:我的用户需要能够编辑动态生成的网页的结构,而不会造成任何损害.)

女士们,先生们,问候.我目前正在开展一项服务,来自特定人群的客户可以创建特定类型的网站并将其填入自己的内容.该系统是用PHP编写的.

该系统的许多用户希望编辑他们的特定网站的外观,或者更常见的是,让设计者为他们做这些.编辑CSS很好,花花公子,但有时这还不够.有时,他们希望通过编辑动态创建的网页的原始HTML来改变整个页面结构.

据我所知,WordPress使用的模板系统非常适合我的使用.除了一件至关重要的事情.除了能够编辑注释的显示方式或菜单的位置之外,编辑模板的人可以使该模板执行任意PHP代码.

由于相同的代码库运行所有这些不同的站点,所有内容都在同一个数据库中,允许我的用户运行任意代码显然是不可能的.

所以我需要的是一个愚蠢的,防止白痴的模板系统,我的用户可以自己编辑大部分页面结构,在任何地方拉动动态部分,甚至不能回显1 + 1;.

观察以下psuedocode:

<!DOCTYPE html>
<title><!-- $title --></title>
<!-- header() -->
<!-- menu() -->
<div>Some random custom crap added by the user.</div>
<!-- page_content() -->
Run Code Online (Sandbox Code Playgroud)

这就是我想授予用户权力的程度.他们不需要做自己的循环或计算或任何事情.只需包含我的变量和函数,剩下的就交给我了.

我敢肯定,我不是这个星球上唯一需要这样的人.你知道我可以用的任何现成的模板系统吗?

在此先感谢您的回复.

ano*_*reh 5

我推荐Twig.

http://www.twig-project.org/

特别是它的沙箱模式.

安全: Twig具有沙盒模式来评估不受信任的模板代码.这允许Twig用作用户可以修改模板设计的应用程序的模板语言.

至于像你的例子一样极其简单的东西,为什么不写一个简单的类来解析你的模板呢?我认为实际上没有任何东西像你要求维护和分发一样超级简单,因为要写一些东西并不是很难.

只有我能想到的其他东西可能是胡子?虽然我认为它的PHP实现在开发阶段很早,但我不确定它目前是多么稳定或可用.

http://github.com/bobthecow/mustache.php