【问题标题】:Why doesn't exit() in a base class terminate child classes?为什么基类中的 exit() 不终止子类?
【发布时间】:2017-12-09 14:04:31
【问题描述】:

在基类的 OnConstruct() 方法中,我在重定向到错误页面后使用 exit() 函数来终止后续代码,包括所有子类的代码。

Here is my code

但它不起作用。下面是伪代码:

  • 当我访问页面 'child/index' 时,它重定向到错误页面,并且我在 '/tmp/debug.log' 文件中有两行:
  • 访问:基类的构造
  • 访问:子类的索引

不知道为什么会打印子类中的字符串“access: index of child class”。我的目的是在 exit() 之后终止所有内容,包括所有子类。

【问题讨论】:

    标签: php class exit phalcon


    【解决方案1】:

    直接来自controller documentation

    请注意 onConstruct() 方法会被执行,即使操作 被执行的控制器中不存在或用户没有 访问它(根据提供的自定义控制访问 开发人员)。

    initialize() 方法仅在 beforeExecuteRoute 事件发生时调用 成功执行。这避免了应用程序中的逻辑 未经授权不能执行初始化程序。

    我建议使用在事件和控制器上触发的event beforeExecuteRoute,如果您返回 false,则允许您停止执行。

    public function beforeExecuteRoute(Dispatcher $dispatcher)
    {
        return false; //stop operation
    }
    

    【讨论】:

    • 非常感谢!我会试试的
    猜你喜欢
    • 1970-01-01
    • 2014-07-17
    • 2011-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-19
    • 2020-10-24
    相关资源
    最近更新 更多