2

我已经搜索了类\Phalcon\Mvc\Controller& \Phalcon\DI\Injectable,但无法理解该filter属性的来源。

如果在控制器中我使用

$this->filter

它从何而来?接口不会在任何地方反映此属性。

谢谢

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

4

1 回答 1

2

在 Phalcon Dependency Injection ( \Phalcon\DI) 容器中,服务被注册并相互交互。

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

所以假设你已经filter在你的 DI 容器中注册了一个服务:

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

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

$filter = $this->filter;

或者

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

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

于 2012-11-12T21:55:57.530 回答