このエントリーをはてなブックマークに追加

更新日: 2016年2月25日

実行時間: 0.0453

ライブラリ

 この章では「 CodeIgniter 」のライブラリクラスについて説明していきます。 これらのライブラリは「CodeIgniter」フレームワークによりデフォルトで「system/libraries/」ディレクトリに用意されています。

CI_Calendar  カレンダー ライブラリクラス
CI_Cart  ショッピングカート ライブラリクラス
CI_Email  メール送信 ライブラリクラス
CI_Encrypt  暗号化 ライブラリクラス
CI_Form_validation  Formバリデーション ライブラリクラス
CI_Ftp  FTPクライアント ライブラリクラス
CI_Image_lib  画像処理 ライブラリクラス
CI_Migration  DBマイグレーション ライブラリクラス
CI_Pagination  ページネーションリンク ライブラリクラス
CI_Parser  テンプレートパーサー ライブラリクラス
CI_Session  セッション ライブラリクラス
CI_Table  HTML Table生成 ライブラリクラス
CI_Trackback  トラックバック ライブラリクラス
CI_Typography  テキストフォーマット ライブラリクラス
CI_Unit_test  単体テスト ライブラリクラス
CI_Upload  アップロードファイル処理 ライブラリクラス
CI_User_agent  User-Agentクライアント情報 ライブラリクラス
CI_Xmlrpc
CI_Xmlrpcs
 XML-RPC ライブラリクラス
CI_Zip  ZIP圧縮 ライブラリクラス

ライブラリの設定ファイル

 CodeIgniterでは、ライブラリクラスで利用する設定は、「CI_Loader」クラスの「library()」メソッドで
ライブラリクラスをロードする際に、第二引数に設定データを指定することができます。

    $this->load->library('ライブラリ', $config);

 しかし、設定データがある程度固定的な情報の場合、コントローラなどのソースコード上に設定情報を記述するのは、 コードの可読性や保守性の面からもあまり良くありません。

 そこで、CodeIgniterでは各ライブラリクラスの設定情報は、予め設定ファイルとして作成しておくことで、 自動で設定情報が読み込まれる仕組みになっています。

 ライブラリクラスの設定ファイルは、ライブラリクラスファイルのファイル名の先頭を小文字にした
ファイル名で、「application/config/」ディレクトリ、または、 「application/config/環境/」ディレクトリに作成します。

  • 例:
    • CI_Emailライブラリクラスの設定ファイル
    application/config/email.php

     または、動作環境毎に設置する場合は以下のように作成します。

    application/config/development/email.php
    application/config/testing/email.php
    application/config/production/email.php

複数インスタンスの生成

 「CI_Loader」クラスの「library()」メソッドでライブラリクラスをロードする際、 第三引数にインスタンス名を指定することで、複数のオブジェクトインスタンスを生成することができます。
 異なる設定情報を持つ複数のオブジェクトインスタンスでの処理が必要な時などに便利です。

    $this->load->library('ライブラリ名', $config, 'オブジェクト名');
  • 例:
    • 複数のFTP接続
    $config_a['hostname'] = 'aaa.ftp.srv';
    $config_a['username'] = 'login_a';
    $config_a['password'] = 'password_a';
    $config_z['hostname'] = 'zzz.ftp.srv';
    $config_z['username'] = 'login_z';
    $config_z['password'] = 'password_z';
    $this->load->library('ftp', $config_a, 'ftp_a');
    $this->load->library('ftp', $config_z, 'ftp_z');
    $this->ftp_a->connect();
    $this->ftp_z->connect();