在Codeigniter中钩子的目的是什么?为什么我们要创建?

35g0bw71  于 2022-12-07  发布在  其他
关注(0)|答案(2)|浏览(111)

我是新来的codeigniter。在每次面试都问到钩。我不明白什么是钩为什么我必须使用它?它的好处是什么。

woobm2wo

woobm2wo1#

这是在codeigniter中使用它挂钩示例链接
https://qasimbadami.wordpress.com/2012/05/18/codeigniter-hooks-tutorial/
注意:假设你有一个很大的项目,几乎有100个控制器,如果每次都要检查会话是否存在,每次都要发出请求,那么就不要使用钩子

oxf4rvwz

oxf4rvwz2#

把钩子看作是codeigniter中的一个中间件实现,基本上你可以扩展框架的基本功能,在请求生命周期的特定时刻添加代码。
这是codeigniter 2中可用的钩子列表
以下是可用钩点的清单。

pre_system在系统执行过程中很早就调用。此时只加载了基准和挂钩类。没有发生路由或其他进程。
pre_controller在调用任何控制器之前立即调用。所有基类、路由和安全检查都已完成。
post_controller_constructor在控制器示例化之后,但在任何方法调用发生之前立即调用。
post_controller在控制器完全执行后立即调用。
display_override覆盖_display()函数,该函数用于在系统执行结束时将完成的页面发送到Web浏览器。这允许您使用自己的显示方法。请注意,您需要使用$this-〉CI =& get_instance()引用配置项超级对象,然后通过调用$this-〉CI-〉output-〉get_output()可以使用完成的数据
cache_override允许您调用自己的函数,而不是输出类中的_display_cache()函数。这允许您使用自己的缓存显示机制。
post_system在将最终呈现的页发送到浏览器后,在将最终数据发送到浏览器后系统执行结束时调用。

相关问题