-
tp文档中介绍的钩子和行为
ThinkPHP中的行为是一个比较抽象的概念,你可以把行为想象成在应用执行过程中的一个动作。在框架的执行 流程中,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器 检测、多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第一次访问弹出 Hello,world! 这些都可以看成是一种行为,把这些行为抽离出来的目的是为了让你无需改动框架和应 用,而在外围通过扩展或者配置来改变或者增加一些功能。 而不同的行为之间也具有位置共同性,比如,有些行为的作用位置都是在应用执行前,有些行为都是在模板输出 之后,我们把这些行为发生作用的位置称之为钩子,当应用程序运行到这个钩子的时候,就会被拦截下来,统一 执行相关的行为,类似于 AOP 编程中的“切面”的概念,给某一个钩子绑定相关行为就成了一种类 AOP 编 程的思想。 一个钩子可以注册多个行为,执行到某个钩子位置后,会按照注册的顺序依次执行相关的行为。但在某些特殊的 情况下,你可以设置某个钩子只能执行一次行为,又或者你可以在一个钩子的某个行为中返回 false 来强制 终止后续的行为执行;一个行为可以同时注册到多个不同的钩子上,完全看应用的需求来设计。 钩子的位置必须是事先设计好的,无论是框架还是应用的,要设置一个钩子,只需要在相关的位置添加一行代码 -
个人理解的钩子和行为
- 类似以前那种钟表定闹钟,比如我定明天早上7点的闹钟,早上七点就是个钩子,闹钟响起就是行为。
- 在程序开发中比如后台系统管理员操作完成后需要记录操作日志,在这里记录操作日志就是一个行为我们可以通过钩子来触发这个行为,把记录操作日志的代码放在行为里面,操作完成后触发钩子记录操作日志
编程中钩子和行为
最新推荐文章于 2022-07-27 19:30:16 发布