首頁 > 後端開發 > php教程 > 003 - CI在你的類別庫中使用 CodeIgniter 資源

003 - CI在你的類別庫中使用 CodeIgniter 資源

不言
發布: 2023-03-23 10:10:02
原創
1133 人瀏覽過


在你的類別庫中使用 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');
    }

}
登入後複製
相關推薦:

#002 - PDO和MySQLi差異與選擇

########################################## #001 - PDO 用法詳細解析#######

以上是003 - CI在你的類別庫中使用 CodeIgniter 資源的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板