1

用于 php 的现代模板引擎(例如 dwoo 或 smarty)可以使用对象作为变量。你可以使用{$obj->method()},真的很方便,我经常用这个。但是,直接从 ORM 导出对象存在明显的安全问题,这些对象具有插入、删除等方法。是否有任何理智的方法可以仅将部分方法公开给模板引擎?我正在考虑包装器仅公开列入白名单的方法:

$aTplVars = array (new TplWrapper(new User($nUserId),  array('getAccount','getStatus')));

你在想什么(有明显的性能开销)?或者在一些现有的 php 模板引擎中可能有类似的东西?

4

1 回答 1

0

创建对象后,您不能在 PHP(或我知道的任何语言)中“削弱”对象。使用对象可能看起来不错,但是您应该在控制器中获取模板的相关数据并将其放入可以安全地分配给模板的数组中。

于 2010-09-18T09:00:35.457 回答