我搜索过课程\Phalcon\Mvc\Controller
& \Phalcon\DI\Injectable
,但无法理解filter
属性的来源。
如果在控制器中我使用
$this->filter
它来自哪里?接口不会在任何地方反映此属性。
由于
与(https://stackoverflow.com/questions/13303141/controllers-attr-this-filter-where-from)相关,由于原始海报的英文而不幸关闭。
答案 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容器中的任何内容也是如此。