ThinkPHP行为扩展Behavior应用实例详解
本文以实例的形式详细介绍了ThinkPHP的行为扩展Behavior的实现方法,有助于读者更灵活的掌握ThinkPHP的开发,具体步骤如下: ThinkPHP 行为扩展 (Behavior) 流程: 最先是读取配置文件信息: 读取配置文件信息 ThinkPHPModecommon.php array(
'app_init' => array(
),'app_begin' => array(
'BehaviorReadHtmlCache',// 读取静态缓存
),'app_end' => array(
'BehaviorShowPageTrace',// 页面Trace显示
),'path_info' => array(),'action_begin' => array(),'action_end' => array(),'view_begin' => array(),'view_parse' => array(
'BehaviorParseTemplate',// 模板解析 支持PHP、内置模板引擎和第三方模板引擎
),'template_filter'=> array(
'BehaviorContentReplace',// 模板输出替换
),'view_filter' => array(
'BehaviorWriteHtmlCache',// 写入静态缓存
),'view_end' => array(),),
默认调用了系统行为扩展:静态缓存读取 、页面Trace显示输出、模板解析、模板内容输出替换、静态缓存写入 // 加载应用行为定义
if(is_file(CONF_PATH.'tags.php')) // 允许应用增加开发模式配置定义 Hook::import(include CONF_PATH.'tags.php'); 分别用Hook去加载 系统行为和自定义行为,并把配置信息保存到 Hook 私有属性$tags中 ThinkPHPLibraryThinkThink.class.php 初始化完成后会调用App::run(); ThinkPHPLibraryThinkApp.class.php文件如下:可以看出程序
缺点如下:1.顺序不可控(配置文件没有专门的参数去控制顺序)如app_init同时有2个监控时先调用哪个方法。 2.监控不是全局监控内部写的太死只有一些定义好的不能通过配置文件去自动控制每一个操作的钩子(可能是考虑到性能才没有加) 优点如下:1.可以实现了好多行为扩展 2.可以代理检测、浏览器防刷新检测、操作路由检测等 总结:行为扩展就是在 程序某个操作时去额外的去执行某一特定功能。如程序在操作数据库 读的时候 通过explian获取性能信息并监测性能瓶颈 如出现获取数据时超过特定秒数 就把相关信息email给项目经理等。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |