关于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文件夹里面放一个行为文件夹,然后里面写上整个项目公共的行为类,这个类里面

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

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

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

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

 

你可能感兴趣的:(TP5)