$ this->在控制器中过滤 - 它在哪里设置

时间:2012-11-12 21:55:58

标签: php phalcon

我搜索过课程\Phalcon\Mvc\Controller& \Phalcon\DI\Injectable,但无法理解filter属性的来源。

如果在控制器中我使用

$this->filter

它来自哪里?接口不会在任何地方反映此属性。

由于

与(https://stackoverflow.com/questions/13303141/controllers-attr-this-filter-where-from)相关,由于原始海报的英文而不幸关闭。

1 个答案:

答案 0 :(得分:2)

在Phalcon依赖注入(\Phalcon\DI)容器中,服务已注册并相互交互。

\Phalcon\Mvc\Controller自动允许使用魔术方法访问DI容器中注册的服务。

因此,假设您已在DI容器中注册了filter服务:

$di->set(
    'filter',
    function () 
    {
        return new \Phalcon\Filter();
    }
}

此服务现在可通过以下方式在您的控制器中使用:

$filter = $this->filter;

$filter = \Phalcon\DI::getDefault()->get('filter');

对于存储在DI容器中的任何内容也是如此。