S1开发手册
前言
安装
规范
目录结构
框架
程序执行流程
入口文件
验证架构
验证架构
验证架构
验证架构
验证架构
应用模块
依赖注入
控制器架构
逻辑架构
验证架构
模型架构
行为架构
插件架构
服务架构
数据操作
系统常用配置
系统常用常量
系统常用函数
模块开发
模板制作
基础操作
本文档使用
零起飞
构建
行为架构
本文最后编辑时间:
2023-08-02 08:54:02
热度:
516
行为(Behavior)是ThinkPHP扩展机制中比较关键的一项扩展,行为既可以独立调用,也可以绑定到某个标签中进行侦听,在官方提出的CBD模式中行为也占了主要的地位,可见行为在ThinkPHP框架中意义非凡。 这里指的行为是一个比较抽象的概念,你可以把行为想象成在应用执行过程中的一个动作或者处理。在框架的执行流程中,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测、多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第一次访问弹出Hello,world!这些都可以看成是一种行为,行为的存在让你无需改动框架和应用,而在外围通过扩展或者配置来改变或者增加一些功能。 而不同的行为之间也具有位置共同性,比如,有些行为的作用位置都是在应用执行前,有些行为都是在模板输出之后,我们把这些行为发生作用的位置称之为标签(位),当应用程序运行到这个标签的时候,就会被拦截下来,统一执行相关的行为,类似于AOP编程中的“切面”的概念,给某一个切面绑定相关行为就成了一种类AOP编程的思想。 这些是TP5官方文档中描述的概念,下面来看看07FLY-S1中有哪些行为。 ```php [], // 应用开始 'app_begin' => [], // 模块初始化 'module_init' => [], // 操作开始执行 'action_begin' => [], // 视图内容过滤 'view_filter' => [], // 日志写入 'log_write' => [], // 应用结束 'app_end' => [], ]; if (defined('BIND_MODULE') && BIND_MODULE == 'install') { return $data; } $data['app_init'] = [BEHAVIOR_PATH . 'InitBase', BEHAVIOR_PATH . 'InitHook']; return $data; ?> ``` 初始化的标签位执行了2个行为,'InitBase','InitHook' 'InitBase' 为文件/app/common/behavior/InitBase.php initBase基本上都是一些常量的定义,就是初始化系统的常量。 另外初始化了系统的配置信息,此处的配置信息是入库的。 最后是注册命名空间 'InitHook'为文件/app/common/behavior/InitHook.php InitHook 就是把将数据库中的钩子查询出来与插件关联,并导入到系统中对系统提供面向切面的扩展方式。
零起飞网络版权所有