ppypp伦理天堂,91手机在线视频,免费在线观看黄色毛片,夜夜穞天天穞狠狠穞AV美女按摩

基于應(yīng)用的鉤子與自定義鉤子功能上一致,唯一不同的是基于應(yīng)用的鉤子能夠分享到云商店,以便其他用戶使用。


一、掛鉤點(diǎn)

掛鉤點(diǎn)就是【鉤子名稱】分類列出的鉤子動(dòng)作,鉤子名稱就是掛鉤點(diǎn)的名稱。


二、定義應(yīng)用的鉤子配置

此處與自定義鉤子不同,它的配置文件必須通過應(yīng)用緩存到指定的文件之中。

例如我在【我的應(yīng)用】中定義一個(gè)注冊之前的鉤子程序。

1、需要在cache更新緩存的方法中寫入到配置程序中:

$hook['member_register_before'][] = array(
	'class' => 'app_hooks',
	'function' => 'reg1',
	'filename' => 'app_hooks.php',
	'filepath' => '{app}hooks',//這里的{app}標(biāo)簽標(biāo)示當(dāng)前應(yīng)用目錄
);
$hook['member_register_before'][] = array(
	'class' => 'app_hooks',
	'function' => 'reg2',
	'filename' => 'app_hooks.php',
	'filepath' => '{app}hooks',//這里的{app}標(biāo)簽標(biāo)示當(dāng)前應(yīng)用目錄
);
$this->my_model->update_hooks(APP_DIR, $hook);

以上代碼所示,一個(gè)應(yīng)用可以定義多個(gè)鉤子。

注意:鉤子的class和文件名必須保持全站的唯一,建議使用當(dāng)前的應(yīng)用名稱作為前綴,否則不予通過審核。

2、需要在uninstall卸載方法中刪除這個(gè)配置

$this->my_model->update_hooks(APP_DIR, NULL);//這句就是刪除當(dāng)前應(yīng)用鉤子配置的意思


三、鉤子運(yùn)行程序

按照上面的例子,鉤子文件都相對于當(dāng)前應(yīng)用的目錄,/app/my/hooks/app_hooks.php。

<?php
/**
 * Created by PhpStorm.
 * User: chunjie
 * Date: 14-6-25
 * Time: 12:51
 */
class app_hooks {
    public $ci;
    
    /**
     * 構(gòu)造函數(shù)
     */
    function __construct() {
        $this->ci = &get_instance();
    }
    
    // 第一個(gè)鉤子
    function reg1($data) {
        log_message('error', '這是執(zhí)行的是鉤子1');
    }
    
    // 第二個(gè)鉤子
    function reg2($data) {
        log_message('error', '這是執(zhí)行的是鉤子2');
    }
}

提示:log_message函數(shù)是輸出一條錯(cuò)誤信息在日志中,開發(fā)者懂得!


按照這種配置,在會員注冊之前會員按順序執(zhí)行以上兩個(gè)方法。


注意兩點(diǎn):

1、相同文件、相同方法、相同類的鉤子程序只運(yùn)行一次,多個(gè)應(yīng)用時(shí)一定不要文件名和類名重復(fù)。

2、鉤子執(zhí)行的優(yōu)先級:應(yīng)用鉤子(不分先后)-> 自定義鉤子 -> 模塊中的鉤子。



文檔最后更新時(shí)間:2014-06-27 18:14:10