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


補助的なクラスの作成

コントローラの既存クラスから別クラスを開発するような場合でも、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 のオブジェクトを利用することができます。