我发现 phalcon 中的视图变量可以被 Phalcon\Escaper 转义:http ://docs.phalconphp.com/en/latest/api/Phalcon_Escaper.html
例如,在 Zend 中,有一种方法可以从视图中调用视图助手:
// view context
$this->escape($data); // calls View\Helper\Escape
$this->url($params); // calls url view helper
// etc
有没有办法在不每次都创建新对象的情况下获得这样的视图助手?我目前的想法是制作一些 BaseView 类,从 Phalcon\Mvc\View 扩展并在那里定义一些常用的方法,这些方法将使用缓存的对象..但我不确定这是最好的方法:
class BaseView extends Phalcon\Mvc\View
{
// cached helper objects
$helpers = [];
// view helper call
public function url($params)
{
if (!$this->helpers['url']) {
$this->helpers['url'] = new Phalcon\Mvc\Url();
}
return $this->helpers['url']->get($params);
}
}