在你的類別庫中使用 get_instance() 函數來訪問 CodeIgniter 的原生資源,這個函數回傳 CodeIgniter 超級物件。
通常情況下,在你的控制器方法中你會使用 $this 來呼叫所有可用的 CodeIgniter 方法:
$this->load->helper('url'); $this->load->library('session'); $this->config->item('base_url'); // etc.
但是 #$this 只能在你的控制器、模型或檢視中直接使用,如果你想在自己的類別中使用 CodeIgniter 類,你可以像下面這樣做:
首先,將CodeIgniter 物件賦值給一個變數:
$CI =& get_instance();
一旦你把CodeIgniter 物件賦值給一個變數之後,你就可以使用這個變數來 取代 $this
##
$CI =& get_instance(); $CI->load->helper('url'); $CI->load->library('session'); $CI->config->item('base_url'); // etc.
註解:
你會看到上面的
get_instance() 函數透過引用來傳遞:
$CI =& get_instance();這是非常重要的,引用賦值允許你使用原始的CodeIgniter 對象,而不是創建一個副本。
然類別庫是一個類,那麼我們最好充分的使用OOP 原則,所以,為了讓類別中的所有方法都能使用CodeIgniter 超級對象,建議將其賦值給一個屬性:
class Example_library { protected $CI; // We'll use a constructor, as you can't directly call a function // from a property definition. public function __construct() { // Assign the CodeIgniter super-object $this->CI =& get_instance(); } public function foo() { $this->CI->load->helper('url'); redirect(); } public function bar() { echo $this->CI->config->item('base_url'); } }相關推薦: ########################################## #001 - PDO 用法詳細解析#######
以上是003 - CI在你的類別庫中使用 CodeIgniter 資源的詳細內容。更多資訊請關注PHP中文網其他相關文章!