1. 程式人生 > >Thinkphp3.23中 行為擴充套件和外掛機制介紹

Thinkphp3.23中 行為擴充套件和外掛機制介紹

行為(Behavior)是ThinkPHP擴充套件機制中比較關鍵的一項擴充套件,行為既可以獨立呼叫,也可以繫結到某個標籤(位)中進行偵聽。

3.2版裡,有了一個外掛的概念,和行為共用一個Hook類,所以放在一起說,原理上並無太大區別。

1.行為擴充套件和外掛機制 配置的方法 (大同小異)

⑴行為擴充套件 

在Application/Common/Conf目錄下建立一個tags.php 

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-8-16
 * Time: 上午10:08
 */
return array(
    "login" => array("Behaviors\\testBehavior"),//行為
);
⑵外掛機制

在Application/Common/Conf目錄下建立一個tags.php 

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-8-16
 * Time: 上午10:08
 */
return array(
    'showflash' => array('Addons\\test\\testAddon'),//外掛
    'clearflash'=>array('Addons\\test\\testAddon'),//另一個外掛外掛
);

2.建立類

⑴行為類建立 在Application/Behaviors/testBehavior.class.php

<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-8-16
 * Time: 上午10:12
 */
namespace Behaviors;
class testBehavior {
    function run($arg){
        echo "this is a  Behaviors ".$arg;
    }
} 

⑵外掛類建立 在 Application/Addons/test/testAddon.class.php
<?php
/**
 * Created by PhpStorm.
 * User: Administrator
 * Date: 16-8-16
 * Time: 上午10:42
 */
namespace Addons\test;
class testAddon {
    function showflash(){
        echo "這是外掛執行入口";
    }
    function clearflash(){
        echo "這是另外一個外掛鉤子入口";
    }
} 
3.觸發監聽的方法

⑴行為擴充套件

$usernam="junxy";
\Think\Hook::listen('login',$usernam);//監聽一個名為login的鉤子

⑵外掛機制
  \Think\Hook::listen('showflash');//監聽一個名為showflash的鉤子
  \Think\Hook::listen('clearflash');//監聽一個名為clearflash的鉤子