我搜索了类 \Phalcon\Mvc\Controller
和 \Phalcon\DI\Injectable
,但无法理解 filter
属性在哪里来自。
如果在我使用的 Controller 中
$this->filter
它从哪里来?接口(interface)不会在任何地方反射(reflect)此属性。
谢谢
与( https://stackoverflow.com/questions/13303141/controllers-attr-this-filter-where-from )相关,不幸的是,由于原始海报的英语而被关闭。
最佳答案
在 Phalcon 依赖注入(inject) (\Phalcon\DI
) 容器中,服务进行注册并相互交互。
\Phalcon\Mvc\Controller
自动允许使用魔法方法访问在 DI 容器中注册的服务。
假设您已经在 DI 容器中注册了一个 filter
服务:
$di->set(
'filter',
function ()
{
return new \Phalcon\Filter();
}
}
现在可以通过以下方式在您的 Controller 中使用此服务:
$filter = $this->filter;
或
$filter = \Phalcon\DI::getDefault()->get('filter');
对于存储在 DI 容器中的任何内容也是如此。
关于php - $this-> Controller 中的过滤器 - 在哪里设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13352238/