ユーザライブラリ
CodeIgniterでは、ユーザ独自のライブラリクラスを作成することが可能です。
新たに作成したユーザライブラリクラスは、CodeIgniterにデフォルトで備わっているライブラリクラス
と同様に扱うことが可能です。
この項では、ユーザライブラリの作成方法、設定ファイル、利用方法について解説しています。
ユーザライブラリの作成
- ユーザライブラリファイルの配置
ユーザライブラリクラスファイルは「 application/libraries/ 」ディレクトリ配下に設置します。
また、サブディレクトリを作成して、その配下に配置することも可能です。
- ユーザライブラリクラス名
ユーザライブラリクラスのクラス名は、CodeIgniterのライブラリクラス名である「CI_」プリフィックス を付けることはできません。それ以外は、PHPのクラス名ルールに則っていれば特に制限はありません。
- ユーザライブラリクラスファイル名
ユーザライブラリクラスのファイル名は、クラス名の先頭を小文字にして、「.php」拡張子を付けたものになります。
}
}
ユーザライブラリの設定ファイル
CodeIgniterのシステムライブラリクラス同様、ユーザライブラリクラスでもデフォルトの設定値を定義する 設定ファイルを用意することができます。
- 設定ファイルの配置
設定ファイルは、「 application/config/ 」に配置します。
- 設定ファイルのファイル名
設定ファイルのファイル名は、ユーザライブラリクラスファイル名と同じファイル名で作成します。
- 設定情報の定義
設定ファイルの設定値の定義は、連想配列で変数名を「 $config 」として定義します。
$config = array(
'key_0' => 'value_0',
'key_1' => 'value_1',
'key_2' => 'value_2',
);
ユーザライブラリのロードと利用
- ユーザライブラリクラスのロード
ユーザライブラリクラスのロードは、CodeIgniterのシステムライブラリクラスと同様に、 「 CI_Loader 」クラスの「 library() 」メソッドの引数に、クラス名の先頭文を小文字にした 文字列を指定してロードします。
また、第二引数に連想配列を指定することで、設定ファイルからのデフォルト設定を利用せず、 個別に設定情報をコンストラクタに渡すことが可能です。
$config['key_1'] = 'value_1';
$this->load->library('userlib', $config);
第三引数には、ライブラリクラスのインスタンス名を指定することで、 複数のインスタンスを個別に生成することも可能です。
$config['key_1'] = 'value_1';
$this->load->library('userlib', $config, 'mylib');
$this->load->library('userlib', NULL, 'anotherlib');
- ユーザライブラリの利用
インスタンス名を指定せずにロードしたライブラリクラスは、「 CI_Loader 」クラスの 「 library() 」メソッドの引数で指定した、ライブラリ名がインスタンス名となり、 「 Controller 」インスタンス、または、「 Model 」インスタンスのプロパティ変数からアクセス可能になります。
$this->userlib->my_func();
「 CI_Loader 」クラスの「 library() 」メソッドの第三引数に、インスタンス名を指定した場合は、
そのインスタンス名が「 Controller 」インスタンス、または、「 Model 」インスタンスのプロパティ変数名
になります。
$this->mylib->my_func();