关于TP5行为的应用和使用

1.首先我们要知道官方对于行为的定义

ThinkPHP中的行为是一个比较抽象的概念,你可以把行为想象成在应用执行过程中的一个动作。在框架的执行流程中,例如路由检测是一个行为,静态缓存是一个行为,用户权限检测也是行为,大到业务逻辑,小到浏览器检测、多语言检测等等都可以当做是一个行为,甚至说你希望给你的网站用户的第一次访问弹出Hello,world!这些都可以看成是一种行为,把这些行为抽离出来的目的是为了让你无需改动框架和应用,而在外围通过扩展或者配置来改变或者增加一些功能。

简而言之:只要是框架在运行,发生的所有的操作都可以理解为行为。

2.行为带来的好处

我们有时候开发会发现原有的框架某些东西已经被定义好了,如果你去改动就要读一遍上下源码,可能改了A处,忽略了B处,会导致一些不必要的问题出现,那么如果有行为的话,我们只需要在需要改变的某处,给它绑定一个行为,当框架运行到这个点之后,就会优先进入行为类执行我们需要的操作,从而不改变框架原有的东西

3.行为的使用

官方已经列出了使用方法,我说的使用,是我在项目中应用到的

(1)首先,找到tag.php

// 应用行为扩展定义文件
return [
    // 应用初始化
    'app_init'     => [],
    // 应用开始
    'app_begin'    => ['app\\common\\behavior\\InitConfig'],
    // 模块初始化
    'module_init'  => [],
    // 操作开始执行
    'action_begin' => [],
    // 视图内容过滤
    'view_filter'  => [],
    // 日志写入
    'log_write'    => [],
    // 应用结束
    'app_end'      => [],
];

在应用开始的时候我们绑定一个公共的行为类,我的习惯是公共的就在app下建立一个common文件夹里面放一个行为文件夹,然后里面写上整个项目公共的行为类,这个类里面

<?php
namespace app\common\behavior;

class InitConfig
{
	public function run($params)
	{
		//只进行调用方法,逻辑写在公共的common.php中 
	}
}

这里一般只写调用方法就可以了,所有的逻辑判断方法全部可以写在common.php中,后面的MC其实也是这样,大家都熟知,M里面我们会写逻辑的处理,C里面只进行调用M中的方法,然后返回结果就行 。那么所有的公共方法都可以写在common.php中。

那么公共的写完了。模块也同样需要。

每个模块下面都建议新建,tag.php文件,然后目录结构都为,bmvc(behavior,model,view,controller),tag进行绑定,b里面写上需要的行为(比如检测登录状态,菜单权限,等等)

这样项目就会显得有条理性,不乱。

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值