1

Phalcon 文档提到了如何使用过滤器|e或通过 autoescape-mode 自动转义{% autoescape true %}。但是 Twig 默认启用了自动转义,并允许您将其作为选项传递给 Twig 环境对象。因此,在 Twig 中,您可以为您的应用程序全局控制自动转义。

Phalcon 是否提供相同的可能性?我真的在谷歌上找不到这个答案,而且我的 C 知识也不存在。

4

1 回答 1

0

是的,这可能是一个问题,因为在Volt 的实现转义中,AFAIK 是为了处理块或表达式,所以可能很难确定你应该转义什么。

恕我直言,实现这一点的更简单方法是自定义编译器以仅在值来自外部源(如变量或方法返回)时转义表达式。所以......答案基本上是否定的,Volt 做不到。但实际上,这将是该框架的出色NRF 。


编辑

多思考一下这个问题,我意识到我在我的应用程序中做了类似的事情。CRUD 操作中的数据交换主要是“表单”、控制器和持久性之间的循环,除了 Phalcon 提供的所有帮助器(从 ORM 到 Form 抽象),我们需要应用一些约定来自动化更多的 CRUD 操作,这些操作基本上是大多数时候都一样。

所以我有两个组件可以帮助我从表单中获取模型数据,另一个组件可以帮助我从数据库中获取模型数据。在这两个组件中,每个操作都会自动调用值转换、过滤器和验证。

我这么说是因为字符串的默认过滤器是字符串转义。我的意思是,如果担心对控制器的任何数据输入(即来自表单或数据库)的数据清理,您可能会得到更好的结果。作为奖励,您可以在模型中获得更一致和更强的类型值,从而使您的业务逻辑实现更加简单。

于 2014-11-20T01:24:10.500 回答