CodeIgniter ユーザガイド 日本語版 Version 1.7.2


補助的なクラスの作成

コントローラの既存クラスから別クラスを開発するような場合でも、CodeIgniterのすべてのリソースを利用することが可能です。以下のように簡単にできます。

get_instance()

コントローラ内部でインスタンスされたあらゆるクラスは、get_instance()メソッドを用いることにより、 簡単にCodeIgniterのネイティブリソースにアクセスすることができます。 このメソッドは、CodeIgniterの主オブジェクトを返します。

通常、CodeIgniterの利用可能な機能を呼び出すには、$this変数の初期化メソッドを用います:

$this->load->helper('url');
$this->load->library('session');
$this->config->item('base_url');
など

しかし、$this変数は、コントローラ、モデル、ビューの中で直接使うときだけ動作します。もし、自作クラスでCodeIgniterのクラスを使用したい場合は、以下のようにします。

まず、CodeIgniterオブジェクトを変数に代入します:

$CI =& get_instance();

オブジェクトを変数に代入したら、$this変数の代わりにその変数を用います:

$CI =& get_instance();

$CI->load->helper('url');
$CI->load->library('session');
$CI->config->item('base_url');
など

Note: 上でget_instance()メソッドが「参照渡し」されていることに注意してください:

$CI =& get_instance();

これは非常に重要です。「参照渡し」することで、コピーではなく、本来のCodeIgniterのオブジェクトを利用することができます。