在 Codeigniter 中 hook 的目的是啥?为啥我们要创造?

Posted

技术标签:

【中文标题】在 Codeigniter 中 hook 的目的是啥?为啥我们要创造?【英文标题】:In Codeigniter what is the purpose of hook ? Why we have to create?在 Codeigniter 中 hook 的目的是什么?为什么我们要创造? 【发布时间】:2017-01-05 02:46:33 【问题描述】:

我是 Codeigniter 的新手。在每次采访中,都询问了钩子。我不明白什么是钩子为什么我必须使用它?它有什么好处。

【问题讨论】:

查看 Stack Overflow 的这个问题***.com/q/23805693/3081659 你读过这个codeigniter.com/user_guide/general/hooks.html 我已经读过,但我没有得到钩子的目的 - syed Noman 感谢您的帮助 @HinaVaja 在功能上就像_constructor_constructor 将始终在该控制器中使用的每个方法下调用。每次控制器启动时都会钩住其负载。查看此视频youtube.com/watch?v=S6-tPYHW374 【参考方案1】:

这是在 codeigniter 中使用它的示例链接

https://qasimbadami.wordpress.com/2012/05/18/codeigniter-hooks-tutorial/

注意:假设你有一个大项目和近 100 个控制器,如果每次检查会话是否存在,每个 post 请求 而不是使用钩子

【讨论】:

【参考方案2】:

将钩子视为 codeigniter 中的中间件实现。 基本上,您可以扩展框架的基本功能,将代码添加到请求生命周期的特定时刻。

这是 codeigniter 2 中可用的钩子列表

以下是可用挂钩点的列表。

pre_system 在系统执行过程中很早就被调用。只有 此时已经加载了基准和钩子类。无路由 或发生了其他过程。

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

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

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

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

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

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

【讨论】:

以上是关于在 Codeigniter 中 hook 的目的是啥?为啥我们要创造?的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter:获取实例

hook Android 权限请求, 插入权限目的dialog显示

hook Android 权限请求, 插入权限目的dialog显示

hook ssdt 内核方面的大神来解答下疑惑

你想成为Android高级工程师你还得学习Hook

你想成为Android高级工程师你还得学习Hook