S1开发手册
前言
安装
规范
目录结构
框架
程序执行流程
入口文件
应用模块
依赖注入
控制器架构
逻辑架构
验证架构
模型架构
行为架构
插件架构
服务架构
数据操作
系统常用配置
系统常用常量
系统常用函数
模块开发
模板制作
基础操作
本文档使用
零起飞
构建
行为架构
本文最后编辑时间:
2025-05-19 09:28:47
热度:
910
行为(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 就是把将数据库中的钩子查询出来与插件关联,并导入到系统中对系统提供面向切面的扩展方式。
提供完善五心级服务,满足用户需求,注重用户体验,为客户打造融入个性需求的企业信息化服务解决方案。
Copyright © 2015~2025 07FLY All Rights Reserved