我想在我的网络应用程序中构建一个报告生成器。用户通过站点的其他部分收集数据,然后应该能够生成“报告”,他/她可以在其中以文档样式的方式使用所述数据。我希望用户能够使用基本的数学功能,获取/设置自己的变量等。我想为什么要重新发明轮子?如果我允许用户使用Twig Template Engine之类的东西编写报告,并且只启用某些扩展供他们使用,这看起来是否相当安全?Twig 模板已经删除了标记中的任何 php,除了基本的字符串更改等之外,没有太多强大的功能可供您使用。让我知道您的想法。
我想在我的网络应用程序中构建一个报告生成器。用户通过站点的其他部分收集数据,然后应该能够生成“报告”,他/她可以在其中以文档样式的方式使用所述数据。我希望用户能够使用基本的数学功能,获取/设置自己的变量等。我想为什么要重新发明轮子?如果我允许用户使用Twig Template Engine之类的东西编写报告,并且只启用某些扩展供他们使用,这看起来是否相当安全?Twig 模板已经删除了标记中的任何 php,除了基本的字符串更改等之外,没有太多强大的功能可供您使用。让我知道您的想法。
Twig 有一个相当强大的沙箱扩展,它完全符合您的描述。有了足够严格的安全策略,我在这里看不到任何问题。
如果 twig 可以满足您的需求,为什么不呢?做得很好,有沙盒模式,可以编译模板。相反,从 PHP 提供 PHP 很难区分,所以使用一些模板对我来说听起来不错。