php - $this-> Controller 中的过滤器 - 在哪里设置

标签 php phalcon

我搜索了类 \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/

相关文章:

php - 检查作为参数传递的变量是否已设置

php - 如何强制使用 HTTPS(Cloudflare 灵活 SSL)?

php - 在Jquery中如何重定向到另一个页面?

php - AJAX 表单提交并上传文件

git - 如何将远程存储库添加到我自己的 git 存储库

php - PHP 中的 !== 比较运算符是什么意思?

php - 将用户重定向到另一个页面后如何运行 php 函数?

performance - Phalcon php vs node.js

php - 在 phalcon 中将多个图像插入 mysql 数据库

php - 相关(别名)模型上的Phalcon验证消息