CodeIgniter類別庫
所有的類別庫檔案存放在system/libraries 資料夾。大多數情況下你需要預先在controller中初始化後才能使用它們:
[code]$this->load->library('class name');
class name是你想要使用的類別名稱。例如,要載入“表單驗證類別”,你可以這樣做:
[code]$this->load->library('form_validation');
建立你的類別庫檔案
你的類別庫檔案必須保存在application/libraries 資料夾,CodeIgniter將在這個資料夾中尋找並初始化它們。
命名約定
檔名首字母大寫。例如: Myclass.php
類別宣告首字母大寫。例如: class Myclass
類別的名字和檔案名稱應相同。
所有的類別應有基礎原型
[code]<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Someclass { public function some_function() { } } /* End of file Someclass.php */
在所有的Controller 函數中,你可以用以下的標準方式初始化你的類別:
[code]$this->load->library('someclass');
當someclass 是檔案名稱時不用加上」. php」副檔名.這裡名字不分大小寫.
一旦你自訂的類別載入完畢,你可以透過以下方式呼叫類別,注意使用小寫的名字:
[code]$this->someclass->some_function(); // 对象的实例名永远都是小写的
當初始化類別庫時,你可以透過第二個參數動態的傳遞陣列到類別的建構子中去:
[code]$params = array('type' => 'large', 'color' => 'red'); $this->load->library('Someclass', $params);
當你使用這個特性時,你必須為類別的建構子加上參數:
[code]<?php if (!defined('BASEPATH')) exit('No direct script access allowed'); class Someclass { public function __construct($params) { // Do something with $params } } ?>
要在你自自在定義的類別庫中存取CodeIgniter的原始資源,你必須使用get_instance() 函數。一般來說在你的控制器函數中你可以透過$this 呼叫任何可用的CodeIgniter函數:
[code]$this->load->helper('url'); $this->load->library('session'); $this->config->item('base_url');
當你在自訂類別中想使用CodeIgniter原始類別時,你可以這樣做:
首先,定義CodeIgniter物件賦給一個變數:
[code]$CI =& get_instance();
一旦定義某個物件為一個變數,你就可以使用那個變數名稱取代$this:
[code]$CI =& get_instance(); $CI->load->helper('url'); $CI->load->library('session'); $CI->config->item('base_url');
替換原始類別
將你自己的類別命名簡單的將你自己的類別命名為與原始類別一樣就能使CodeIgniter使用這個新類別.要使用這個特性,檔案名稱與類別聲明必須與原始類別完全一致。例如,要替換原始的 Email 類別庫。你必須建立一個檔案application/libraries/Email.php, 並按如下方式聲明類別:
[code]class CI_Email { }
擴展現有類別
如果你需要在現有類別庫中加入一兩個新的功能,那就完全不必要替換整個類別庫檔案.你只需簡單地擴展(繼承)現有的類別,擴展一個類別就像在類別中增加一些例外:
擴展的類別必須申明由父類別擴展而來。
新擴充的類別所在的檔案必須以 MY_ 為前綴(這個選項是可設定的)。
例如,要擴展原始類別Email類別你要建立檔案application/libraries/MY_Email.php,並按如下方式在檔案中聲明:
[code]class MY_Email extends CI_Email { }
要載入子類,你應該使用標準字元名,請不要使用前綴,例如,要載入上文說過的email擴充子類,你應該這樣寫:
[code]$this->load->library('email');
以上就是CodeIgniter學習筆記Item9--CI中的類庫的內容,更多相關內容請關注PHP中文網(www.php.cn)!