亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

directory search
歡迎 目錄 快速參考圖 基本信息 服務(wù)器要求 許可協(xié)議 變更記錄 關(guān)于CodeIgniter 安裝 下載 CodeIgniter 安裝指導(dǎo) 從老版本升級 疑難解答 介紹 開始 CodeIgniter 是什么? CodeIgniter 速記表 支持特性 應(yīng)用程序流程圖 模型-視圖-控制器 架構(gòu)目標(biāo) 教程 內(nèi)容提要 加載靜態(tài)內(nèi)容 創(chuàng)建新聞條目 讀取新聞條目 結(jié)束語 常規(guī)主題 CodeIgniter URL 控制器 保留字 視圖 模型 輔助函數(shù) 使用 CodeIgniter 類庫 創(chuàng)建你自己的類庫 使用 CodeIgniter 適配器 創(chuàng)建適配器 創(chuàng)建核心系統(tǒng)類 鉤子 - 擴(kuò)展框架的核心 自動裝載資源 公共函數(shù) URI 路由 錯誤處理 緩存 調(diào)試應(yīng)用程序 以CLI方式運行 管理應(yīng)用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準(zhǔn)測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗證 XML-RPC 和 XML-RPC 服務(wù)器 Zip 編碼類 緩存適配器 適配器參考 適配器 數(shù)據(jù)庫類 Active Record 類 數(shù)據(jù)庫緩存類 自定義函數(shù)調(diào)用 數(shù)據(jù)庫配置 連接你的數(shù)據(jù)庫 數(shù)據(jù)庫快速入門例子代碼 字段數(shù)據(jù) 數(shù)據(jù)庫維護(hù)類 查詢輔助函數(shù) 數(shù)據(jù)庫類 查詢 生成查詢記錄集 表數(shù)據(jù) 事務(wù) 數(shù)據(jù)庫工具類 JavaScript類 輔助函數(shù)參考 數(shù)組輔助函數(shù) CAPTCHA 輔助函數(shù) Cookie Helper 日期輔助函數(shù) 目錄輔助函數(shù) 下載輔助函數(shù) Email 輔助函數(shù) 文件輔助函數(shù) 表單輔助函數(shù) HTML輔助函數(shù) Inflector 輔助函數(shù) 語言輔助函數(shù) 數(shù)字輔助函數(shù) 路徑輔助函數(shù) 安全輔助函數(shù) 表情輔助函數(shù) 字符串輔助函數(shù) 文本輔助函數(shù) 排版輔助函數(shù) URL 輔助函數(shù) XML 輔助函數(shù)
characters

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請 登錄 或 注冊  找回密碼
查看原文

鉤子 - 擴(kuò)展框架的核心

CodeIgniter 的鉤子功能使得您可以在不修改系統(tǒng)核心文件的基礎(chǔ)上來改變或增加系統(tǒng)的核心運行功能。 當(dāng) CodeIgniter 運行后,它會產(chǎn)生出一個特殊的進(jìn)程,這個進(jìn)程在 項目流程 頁面中有說明。 當(dāng)然,您可以自定義一些動作來替代程序運行過程中的某些階段。例如,您可以在控制器剛剛載入前或剛剛載入后來運行特定的腳本,或者在其他時刻來觸發(fā)您的腳本。

啟用鉤子

鉤子功能可以在全局范圍內(nèi)打開或關(guān)閉,您可以在 application/config/config.php 文件中設(shè)定:

$config['enable_hooks'] = TRUE;

定義鉤子

鉤子是在 application/config/hooks.php 文件中定義的。 每個鉤子可以用以下格式的數(shù)組來定義:

$hook['pre_controller'] = array(
????????????????????????????????'class'????=> 'MyClass',
????????????????????????????????'function' => 'Myfunction',
????????????????????????????????'filename' => 'Myclass.php',
????????????????????????????????'filepath' => 'hooks',
????????????????????????????????'params'???=> array('beer', 'wine', 'snacks')
????????????????????????????????);

說明:
數(shù)組的索引與你使用的指定掛鉤點名字相關(guān).上面的例子中掛鉤點是pre_controller. 掛鉤點參數(shù)列表如下所示. 以下各項將定義在你的相關(guān)鉤子數(shù)組里:

  • class? 你希望調(diào)用的類名.如果你更喜歡使用過程函數(shù)代替類的話,此項保留為空.
  • function? 你希望調(diào)用的函數(shù)名.
  • filename? 包含有你的類/函數(shù)的文件名.
  • filepath? 包含你的腳本的目錄名. 注意: 你的腳本放在 application 文件夾下的目錄里, 這樣 filepath就以那個文件夾(application)為基準(zhǔn). 例如, 如果你的腳本放在application/hooks下, 你可以把hooks 作為你的filepath. 如果你的腳本放在application/hooks/utilities下你可以把 hooks/utilities作為filepath. 注意后面沒有"/".如果不放在根目錄下可以根據(jù)相對路徑的配置,來完成調(diào)用。這樣就可以完成,多個應(yīng)用共享一個鉤子。
  • params? 你希望傳遞給腳本的任何參數(shù). 此項是可選的.

同一掛鉤點的多次引用

如果你想在同一個掛鉤點引用多個腳本,最簡單的方式就是把你的數(shù)組定義成二維的,像這樣:

$hook['pre_controller'][] = array(
????????????????????????????????'class'????=> 'MyClass',
????????????????????????????????'function' => 'Myfunction',
????????????????????????????????'filename' => 'Myclass.php',
????????????????????????????????'filepath' => 'hooks',
????????????????????????????????'params'???=> array('beer', 'wine', 'snacks')
????????????????????????????????);

$hook['pre_controller'][] = array(
????????????????????????????????'class'????=> 'MyOtherClass',
????????????????????????????????'function' => 'MyOtherfunction',
????????????????????????????????'filename' => 'Myotherclass.php',
????????????????????????????????'filepath' => 'hooks',
????????????????????????????????'params'???=> array('red', 'yellow', 'blue')
????????????????????????????????);

注意在每個數(shù)組索引后面的中括號:

$hook['pre_controller'][]

這允許你的多個腳本擁有相同的掛鉤點。你定義數(shù)組的順序?qū)⑹浅绦驁?zhí)行的順序.

掛勾點

以下是一組可用的掛鉤點.

  • pre_system
    系統(tǒng)執(zhí)行的早期調(diào)用.僅僅在benchmark 和 hooks?類?加載完畢的時候. 沒有執(zhí)行路由或者其它的過程.
  • pre_controller
    在調(diào)用你的任何控制器之前調(diào)用.此時所用的基礎(chǔ)類,路由選擇和安全性檢查都已完成.
  • post_controller_constructor
    在你的控制器實例化之后,任何方法調(diào)用之前調(diào)用.
  • post_controller
    在你的控制器完全運行之后調(diào)用.
  • display_override
    覆蓋_display()函數(shù), 用來在系統(tǒng)執(zhí)行末尾向web瀏覽器發(fā)送最終頁面.這允許你用自己的方法來顯示.注意,你需要通過 $this->CI =& get_instance() 引用 CI 超級對象,然后這樣的最終數(shù)據(jù)可以通過調(diào)用 $this->CI->output->get_output() 來獲得。
  • cache_override
    可以讓你調(diào)用自己的函數(shù)來取代output類中的_display_cache() 函數(shù).這可以讓你使用自己的緩存顯示方法
  • post_system
    在最終著色頁面發(fā)送到瀏覽器之后,瀏覽器接收完最終數(shù)據(jù)的系統(tǒng)執(zhí)行末尾調(diào)用

?

翻譯貢獻(xiàn)者: anbutu, chouqiuqiu, elviscai, Hex, Jack, nardo, qixingyue, shishirui
最后修改: 2011-06-16 18:26:42
Previous article: Next article: