【问题标题】:codeigniter "after-method" equivalent of _remap()_remap() 的 codeigniter "after-method" 等价物
【发布时间】:2012-02-07 17:43:00
【问题描述】:

如果 CodeIgniter 有 _remap() 被调用 before 它触及控制器中的任何方法,是否有一个 after-method 等价物在方法被调用之后被调用?

场景是这样的

  1. 通常会在该控制器的构造函数或重新映射中预先检查登录凭据等内容。这是预方法区域。
  2. 之后,在方法中构建页面数据。
  3. 然后通过调用模板解析器或加载视图来加载并显示视图/模板。

我希望第三步在某种程度上自动after-method 函数,它可以被我的所有控制器继承,这样我就不必每次都调用解析器/加载器做个方法?

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    Codeigniter 有一个名为“hooks”的功能。我确定这就是您要找的。​​p>

    来自hooks 页面; 以下是可用挂钩点的列表。

    pre_system 在系统执行期间很早就被调用。此时仅加载了基准和钩子类。没有发生路由或其他进程。

    pre_controller 在调用任何控制器之前立即调用。所有基类、路由和安全检查均已完成。

    post_controller_constructor 在您的控制器被实例化后立即调用,但在任何方法调用发生之前。

    post_controller 在您的控制器完全执行后立即调用。

    display_override 覆盖 _display() 函数,用于在系统执行结束时将最终页面发送到 Web 浏览器。这允许您使用自己的显示方法。请注意,您需要使用 $this->CI =& get_instance() 引用 CI 超级对象,然后通过调用 $this->CI->output->get_output()

    可以获得最终数据

    缓存覆盖 使您能够调用自己的函数,而不是输出类中的 _display_cache() 函数。这允许您使用自己的缓存显示机制。

    post_system 在最终呈现的页面发送到浏览器后调用,在最终数据发送到浏览器后系统执行结束时调用。

    【讨论】:

      猜你喜欢
      • 2016-05-07
      • 1970-01-01
      • 1970-01-01
      • 2011-04-06
      • 2020-07-24
      • 2011-05-26
      • 2012-03-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多