ThinkPHP-扩展指南-行为扩展
来自站长百科
导航:返回上一页
行为扩展和Widget扩展的区别其实就是Widget是用于输出的,而行为通常是执行某个方法,但通常都不需要输出,即使输出的话也许是错误提示信息之类的。行为是可以和应用扩展配合的,因为应用扩展是很随意的,但是行为却是可以规范的。定义好的行为扩展,可以被任何应用扩展中的标签单独调用。
行为类的定义也很简单,例如下面是一个代理检测访问行为的扩展:
PHP代码
class AgentCheckBehavior extends Behavior { public function run() { // 代理访问检测 if(C('LIMIT_PROXY_VISIT') && ($_SERVER['HTTP_X_FORWARDED_FOR'] || $_SERVER['HTTP_VIA'] || $_SERVER['HTTP_PROXY_CONNECTION'] || $_SERVER['HTTP_USER_AGENT_VIA'])) { // 禁止代理访问 exit('Access Denied'); } } }
行为类必须定义一个run接口方法,否则无法正确调用。命名为AgentCheckBehavior.class.php 后 放入项目的Lib\Behavior 目录下面。接下来就是调用这个行为,在调用的地方只需要使用:
PHP代码
B('AgentCheck');
配合应用扩展机制的话,例如我们在项目初始化标签的执行方法里面使用了上面的代码,就会在项目初始化的时候自动调用该行为了。