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

更新日: 2016年2月25日

実行時間: 0.0222

パッケージ (third_party)

 CodeIgniterでは、「モデル」、「設定」、「ライブラリ」、「ヘルパー」、「ビュー」、 「言語」ファイルをサブセットとするパッケージを構成することが可能です。
 作成したパッケージは、サードパーティとして配布したり、誰かが開発したパッケージを 利用することもできます。

 この章では、パッケージの開発方法とパッケージの利用方法を解説しています。

パッケージの開発

 パッケージを開発するには、CodeIgniterのディレクトリ命名規則に習った「モデル」、「設定」、 「ライブラリ」、 「ヘルパー」、「ビュー」のサブディレクトリを含める親ディレクトリを作成します。

 親ディレクトリは、パッケージを識別するパッケージ名として命名するか、 または、配布を目的とする場合などは、提供元としてドメインの各レベルを逆に並べた 文字列をディレクトリ名とするのが良いでしょう。

  • 例:
    • パッケージ名
    some_pkg/
           |- models/
           |- config/
           |- libraries/
           |- helpers/
           |- language/
           |- views/
    
    • 逆ドメイン名
    info.ci-guide/
           |- models/
           |- config/
           |- libraries/
           |- helpers/
           |- language/
           |- views/
    

 各サブディレクトリ内に作成するファイルは、CodeIgniterの規則に従った形でそれぞれ開発していきます。  各ファイルの開発方法は、対応する各章を参照してください。

パッケージの利用

パッケージの配置

 パッケージを利用するには、まず初めに、「 application/third_party/ 」ディレクトリ配下に パッケージを展開します。

    • 例:
    application/third_party/
                       |- info.ci-guide/
                                    |- models/
                                    |- config/
                                    |- libraries/
                                    |- helpers/
                                    |- language/
                                    |- views/
    

パッケージパスの追加

 パッケージを利用するためには、パッケージのパスを指定する必要があります。

 パッケージパスの指定には、「autoload.php」 自動ロードファイルで設定する方法と、「CI_Loader」コアクラスの 「add_package_path()」メソッドで指定する方法があります。

 それぞれ、用途に合わせてどちらの方法を利用するか選択するとよいでしょう。

    • autoload.php

     「autoload.php」の自動ロードで指定した場合は、全てのリクエストで自動的にパッケージパスが指定され便利です。  (モジュール構成の場合は、対象のモジュール内で有効となります。)

    $autoload['packages'] = array(
        APPPATH . 'third_party/some_pkg',
        APPPATH . 'third_party/info.ci-guide'
    );
    • add_package_path()

     「add_package_path()」メソッドで指定した場合は、任意の場所で個別に指定することができリソースの 節約をすることができます。

    $this->load->add_package_path( APPPATH . 'third_paty/some_pkg');
    $this->load->add_package_path( APPPATH . 'third_paty/info.ci-guide');

ファイルのロード

 パッケージパスが指定された後であれば、モデルクラス、ライブラリクラス、
ヘルパーファイル、ビューファイルは 「CI_Loader」コアクラスの「load()」メソッドでロードすることができます。
 設定ファイル、言語ファイルは、 それぞれ、「CI_Confit」コアクラス、「CI_Lang」コアクラス の「locad()」メソッドによりロードすることができます。

    モデルクラス $this->load->model()
    ライブラリクラス $this->load->library()
    ヘルパーファイル $this->load->helper()
    ビューファイル $this->load->view()
    設定ファイル $this->config->load()
    言語ファイル $this->lang->load()