<?php
namespace Behavior;
class adBehavior{
function run($arg){
//在此介绍下,run必须的 ,细心的会在Think核心找到Behavior.class.php里面有这样一句话 abstract public function run(&$params);
echo '我是一条'.$arg['name'].'广告,'.$arg['value'].'代言';
}
}
namespace Home\Controller;
use Think\Controller;
use Think\Hook;//引进促发钩子行为的类,是为下面的Hook::add()调用做伏笔的
class IndexController extends Controller {
public function login(){
//这里我设置一个ad行为的标签,也就是给我自定义的adBehavior钩子行为类添加一个促发行为的标识
Hook::add('ad','Behavior\\adBehavior');
//第一个是执行标签的名称,第二个参数是行为的类的地址
Hook::add('test', "Home\\Behaviors\\testBehavior");
//Hook::add('test2', "Home\\Behaviors\\testBehavior");
$param=array('name'=>'testBehavior');
$param2=array('LIS'=>'LLISTION');
$param3=array('music'=>'cangjingshikong');
$this->assign('param',$param);
$this->assign('param',$param2);
$this->assign('param',$param3);
$this->display();
}
}
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>ThinkPHP 行为(Behavior)扩展以及插件(Plug or Hook)详解(含实例)
</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="description" content="Hook使用方法" />
</head>
<body>
<h1>How to used?</h1>
{:hook('ad', array('name'=>'AV','value'=>'*老师'))}
<div>————————————————分割线1——————————————————</div>
<div style="font-weight: bold ;color: #00ff00">{:hook('ad', array('name'=>'MV','value'=>'苍井空老师'))}</div>
<div>————————————————分割线2——————————————————</div>
<!--hook函数第一个参数是标签的名称,第二个参数随意-->
<!--tag函数第一个参数是标签的名称,第二个一定是变量,因为tag函数是引址传递的参数-->
<div>hook函数:{:hook('test', array('name'=>'World'))}<hr/></div>
<div>tag函数:{:tag('mv',$param)}<hr/></div>
<hr/>
<div>tag函数:{:tag('action_begin',$param)}</div>
</body>
</html>
How to used? 我是一条AV广告,*老师代言 ————————————————分割线1—————————————————— 我是一条MV广告,苍井空老师代言 ————————————————分割线2——————————————————
<?php
/**
* Created by PhpStorm.
* User: Administrator
* Date: 2016/7/17
* Time: 11:02
*/
namespace Home\Behaviors;
/*
* 注册钩子行为类,要触发的行为写在run函数里
* */
class testBehavior extends \Think\Behavior{
public function run(&$arg){
echo 'test behavior=====下一行是参数<br/>'.$arg['name'];
}
}
<?php
/**
* Created by zhuowenfeng.
* User: Administrator
* Date: 2016/7/17
* Time: 10:56
*/
return array(
//'action_begin'=>array('Home\\Behaviors\\test','Home\\Behaviors\\test'),
//一个标签位可以有多个行为,使用数组即可。
// 如果是3.2.1版本 则需要改成
'action_begin'=>array('Home\\Behaviors\\testBehavior','Home\\Behaviors\\testBehavior'),
'mv'=>array('Home\\Behaviors\\mvBehavior','Home\\Behaviors\\mvBehavior')
);
/**
* 获取和设置配置参数 支持批量定义
* @param string|array $name 配置变量
* @param mixed $value 配置值
* @param mixed $default 默认值
* @return mixed
*/
function hook($hook,$params=array()){
\Think\Hook::listen($hook,$params); //监听一个钩子
}
/**
* 处理标签扩展
* @param string $tag 标签名称
* @param mixed $params 传入参数
* @return void
*/
function tag($tag, &$params=NULL) {
\Think\Hook::listen($tag,$params);
}
//第一个是执行标签的名称,第二个参数是行为的类的地址
Hook::add('test', "Home\\Behaviors\\testBehavior");
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有