我是新来的codeigniter。在每次面试都问到钩。我不明白什么是钩为什么我必须使用它?它的好处是什么。
woobm2wo1#
这是在codeigniter中使用它挂钩示例链接https://qasimbadami.wordpress.com/2012/05/18/codeigniter-hooks-tutorial/注意:假设你有一个很大的项目,几乎有100个控制器,如果每次都要检查会话是否存在,每次都要发出请求,那么就不要使用钩子
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在将最终呈现的页发送到浏览器后,在将最终数据发送到浏览器后系统执行结束时调用。
2条答案
按热度按时间woobm2wo1#
这是在codeigniter中使用它挂钩示例链接
https://qasimbadami.wordpress.com/2012/05/18/codeigniter-hooks-tutorial/
注意:假设你有一个很大的项目,几乎有100个控制器,如果每次都要检查会话是否存在,每次都要发出请求,那么就不要使用钩子
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在将最终呈现的页发送到浏览器后,在将最终数据发送到浏览器后系统执行结束时调用。