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

目錄 搜索
歡迎 目錄 快速參考圖 基本信息 服務(wù)器要求 許可協(xié)議 變更記錄 關(guān)于CodeIgniter 安裝 下載 CodeIgniter 安裝指導(dǎo) 從老版本升級(jí) 疑難解答 介紹 開始 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ò)展框架的核心 自動(dòng)裝載資源 公共函數(shù) URI 路由 錯(cuò)誤處理 緩存 調(diào)試應(yīng)用程序 以CLI方式運(yùn)行 管理應(yīng)用程序 處理多環(huán)境 PHP替代語法 安全 開發(fā)規(guī)范 類庫參考 基準(zhǔn)測試類 日歷類 購物車類 配置類 Email 類 加密類 文件上傳類 表單驗(yàn)證詳解 FTP 類 圖像處理類 輸入類 Javascript 類 語言類 裝載類 遷移類 輸出類 分頁類 模板解析器類 安全類 Session 類 HTML 表格類 引用通告類 排版類 單元測試類 URI 類 User-Agent 類 表單驗(yàn)證 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ù)
文字

CodeIgniter 用戶指南 版本 2.1.0

編輯文檔、查看近期更改請(qǐng) 登錄 或 注冊(cè)  找回密碼
查看原文

創(chuàng)建類庫

當(dāng)我們使用術(shù)語"類庫"時(shí),我們一般指的是位于libraries 文件夾中的類,它們?cè)趙iki的"類庫參考"這個(gè)板塊被討論.在當(dāng)前這個(gè)話題中,我們將討論如何在 application/libraries 文件夾中建立你自己的類庫,并使它們與全框架的資源維持分離.

作為一個(gè)額外的功能,當(dāng)你需要在原始類中簡單地添加一些功能時(shí),CodeIgniter能使你的類庫extend 自原始類.你甚至可以通過在application/libraries文件夾下安放同名類庫文件的方法來完全替換原始類.

總之:

  • 你可以創(chuàng)建全新的類庫.
  • 你可以擴(kuò)展原始類庫.
  • 你可以替換原始類庫.

以下頁面將深入介紹這三個(gè)概念.

注意: 除了數(shù)據(jù)庫類無法被擴(kuò)展或替換,剩余其他類均可。

建立你的類庫文件

你的類庫文件必須保存在 application/libraries 文件夾,CodeIgniter將在這個(gè)文件夾中尋找并初始化它們.

命名約定

  • 文件名首字母大寫. 例如:? Myclass.php
  • 類聲明首字母大寫. 例如:? class Myclass
  • 類的名字和文件名應(yīng)符合.

類文件

所有的類應(yīng)有基礎(chǔ)原型(注意,這里我們以 Someclass 這個(gè)名字為例):

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Someclass {

????public function some_function()
????{
????}
}

使用你自己的類

在所有的Controller 函數(shù)中,你可以用以下的標(biāo)準(zhǔn)方式初始化你的類:

$this->load->library('someclass');

當(dāng) someclass 是文件名時(shí),不用加上".php"擴(kuò)展名.這里名字不分大小寫.

一旦你自定義的類加載完畢,你可以通過以下方式調(diào)用類,注意使用 小寫 的名字:

$this->someclass->some_function();? // 對(duì)象的實(shí)例名永遠(yuǎn)都是小寫的

在初始化自定義類時(shí)傳遞參數(shù)

當(dāng)初始化類庫時(shí),你可以通過第二個(gè)參數(shù)動(dòng)態(tài)的傳遞數(shù)組到類的構(gòu)造函數(shù)中去:

$params = array('type' => 'large', 'color' => 'red');

$this->load->library('Someclass', $params);

當(dāng)你使用這個(gè)特性時(shí),你必須為類的構(gòu)造函數(shù)加上參數(shù):

<?php if (!defined('BASEPATH')) exit('No direct script access allowed');

class Someclass {

????public function __construct($params)
????{
????????// Do something with $params
????}
}

?>

你也可以傳遞存于配置文件中的參數(shù).你只需簡單的建立一個(gè)與 類文件名相同的config文件,并保存在 application/config/ 文件夾中.注意當(dāng)你通過上文所述的方式動(dòng)態(tài)傳遞參數(shù)時(shí),config文件中的選項(xiàng)將不起作用.

在你自定義的類庫中初始化CodeIgniter資源

要你自定義的類庫中訪問CodeIgniter的原始資源,你必須使用 get_instance() 函數(shù).這個(gè)函數(shù)返回一個(gè)CodeIgniter super object.

一般來說在你的控制器函數(shù)中你可以通過 $this 調(diào)用任何可用的CodeIgniter函數(shù):

$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');
//etc.

$this, 只直接作用在你自己的控制器,模型和視圖中.當(dāng)你在自定義類中想使用CodeIgniter原始類時(shí),你可以這樣做:

首先,定義CodeIgniter對(duì)象賦給一個(gè)變量:

$CI =& get_instance();

一旦定義某個(gè)對(duì)象為一個(gè)變量,你就可以使用那個(gè)變量名 取代 $this:

$CI =& get_instance();

$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');
//etc.

注意: 你將注意到get_instance()這個(gè)函數(shù)通過被引用的方式被傳遞:

$CI =& get_instance();

這十分重要. 通過引用的方式賦給變量將使用原始的 CodeIgniter 對(duì)象,而不是創(chuàng)建一個(gè)副本。

用你自己的類替換原始類

簡單的將你自己的類命名為與原始類一樣就能使CodeIgniter使用這個(gè)新類.要使用這個(gè)特性,文件名與類聲明必須與原始類完全一致。例如,要替換原始的 Email 類庫。你必須創(chuàng)建一個(gè)文件application/libraries/Email.php, 并按如下方式聲明類:

class CI_Email {

}

注意大多數(shù)原始類以CI_為前綴.

你可以只用標(biāo)準(zhǔn)載入函數(shù)來載入你自己的類:

$this->load->library('email');

注意: 這個(gè)時(shí)候Database無法替換為你自定義的類.

擴(kuò)展現(xiàn)有類

如果你需要在現(xiàn)有類庫中加入一兩個(gè)新的功能,那就完全不必要替換整個(gè)類庫文件.你只需簡單地?cái)U(kuò)展(繼承)現(xiàn)有的類,擴(kuò)展一個(gè)類就像在類中增加一些例外:

  • 擴(kuò)展的類必須申明由母類擴(kuò)展而來.
  • 新擴(kuò)展的類所在的文件必須以 MY_ 為前綴(這個(gè)選項(xiàng)是可配置的,下面有說明).

例如,要擴(kuò)展原始類 Email 類你要建立文件 application/libraries/MY_Email.php, 并按如下方式在文件中聲明:

class MY_Email extends CI_Email {

}

注意:如果你需要在類中使用構(gòu)造函數(shù),你必須在構(gòu)造函數(shù)中顯式繼承母類構(gòu)造函數(shù):

class MY_Email extends CI_Email {

????public function __construct()
????{
????????parent::__construct();
????}
}

載入你的子類

要載入擴(kuò)展子類,你應(yīng)該使用標(biāo)準(zhǔn)字符名. 請(qǐng)不要使用前綴. 例如,要載入上文說過的email擴(kuò)展子類,你應(yīng)該這樣寫:

$this->load->library('email');

擴(kuò)展子類一旦被載入,就能像一般的類一樣使用它們. Email類中的所有函數(shù)就能被調(diào)用:

$this->email->some_function();

設(shè)定自定義前綴

要設(shè)定你自己的子類前綴,請(qǐng)打開 application/config/config.php 文件并找到這一項(xiàng):

$config['subclass_prefix'] = 'MY_';

注意所有原始CodeIgniter類庫以 CI_ 作為前綴,所以請(qǐng)勿以CI_作為你自己的前綴.

?

翻譯貢獻(xiàn)者: benfeng, billycui, Deloz, Hex, IT不倒翁, shishirui, soyota, thinksand, walkbird
最后修改: 2012-02-05 23:23:26
上一篇: 下一篇: