|
|
2
5
听起来您需要的是一种模板化语言,它支持由自定义令牌进行扩展。考虑到PHP本身满足了这一需求,我猜想您还需要某种类型的沙盒。 为此,我建议 TWIG . 默认情况下,它使用与Django和Jinja2(用于Python)相同的基本语法或Liquid(用于Ruby)相同的基本语法(尽管不建议使用可配置的基本语法),并编译为缓存的PHP以提高速度。 它支持沙盒和参数自动转义以及块替换和继承,您可以选择它可以访问的变量,并且可以设置任何您想要的默认和自定义标记和过滤器的组合。 Smarty 可能也能满足您的需求,但我不确定它是否具备上述所有功能,我认为它的语法不够优雅,而且我被告知它比它的价值更痛苦。 无论你做什么,在发明你自己的模板语言之前,要想很久和努力。从长远来看,这通常是一个巨大的痛苦,而且往往最终会出现在每日WTF的旁边 BobX 迟早。
更新:
我有种感觉,您对使用名称空间XML进行模板化非常着迷。是否真的值得重新设计一个完整的模板引擎,以便用户使用
|
|
|
3
1
对于自定义XML,可以使用 PHP XML parser 最好是萨克斯的表演。 聪明的 是一个非常好的具有内置标记、块和函数的PHP模板引擎。您可以扩展它们来创建自己的,甚至删除内置的(对于Smarty3)。 如果您需要创建自己的脚本,我建议您检查 语言分析器 喜欢 莱克斯 和 YACC . 你必须像这样定义你的语言 those SQLite images 只是不是以图形的方式,而是以文本的方式。还有其他的 grammatical language parser 可用。我给的是最古老和最有名的,但它是C++完成的。 您可能希望自己避免这样做(比如使用regexp)。很快,脚本中就会出现许多不一致的地方。尽管regexp本身就是一种自动解释的语言。 您可以混合使用这两种语言:XML解析器和常规解析器。退房 Finite-state machine (FSM) . |
|
|
4
-1
我首先在XML中定义一个典型的页面标记是什么样子的,然后继续用您选择的语言破译XML,然后使用它并创建HTML。 XML应该是一组描述特定语言的节点。 所以…
我会更仔细地在互联网上寻找,看看是否已经有一些重建的东西能够满足你的需要,然后再着手这样的事情,它有非常真正的潜力成为那些失控和无法维护的事情之一。 |
|
|
sungjun cho · 函数模板重叠多个匹配项 1 年前 |
|
|
Amaterastis · 基类接受子类和内部子类的模板参数 1 年前 |
|
|
111111 · 确定作为模板参数传递的函数的参数类型 1 年前 |
|
|
Sam · 在LaTeX中将图像添加到预制的投影仪中 1 年前 |
|
|
user416983 · 模板函数成员作为模板参数 1 年前 |
|
|
PyOPTProblem · c++如何模板化模板参数的部分实例化? 1 年前 |