プラグイン
プラグインもヘルパと同様に動作します。違いは、ヘルパは通常関数のコレクションであるのに対し、プラグインは常にひとつだけの関数を提供するということです。ヘルパはまた、コアシステムの一部として考えられたものですが、プラグインは、コミュニティで作成され、共有されることを意図しています。
プラグインは、system/plugins ディレクトリに保存する必要があります。あるいは、plugins という名前のフォルダを application フォルダの中につくって、その中に入れてもかまいません。CodeIgniter は最初に system/application/plugins ディレクトを認識します。 このディレクトリが存在しない時や、読み込もうとするプラグインがこのディレクトリの中にない場合、CodeIgniterは代わりにグローバルな system/plugins フォルダを探します。
プラグインの読み込み
プラグインファイルを読み込むのは、次のようなメソッドを使う、非常に単純なものです:
$this->load->plugin('name');
ここでの nameは、プラグインの名前になります。 .php ファイルの拡張子やファイル名の"plugin"をあらわす部分 [ 訳注:プラグインの物理ファイル名の末尾には「_pi」というサフィックスをつける必要があります ] は不要です。
たとえば、captcha_pi.phpというファイル名の Captcha プラグインを読み込むには次のようにします:
$this->load->plugin('captcha');
プラグインは、利用する前にロードしさえすれば、コントローラのメソッドの中の(良いやり方ではありませんが、あるいはビューファイルの)どこでロードしてもかまいません。コントローラのコンストラクタでロードすれば、どのメソッドでも利用できるようになりますし、特定のメソッド内で必要な時だけ読み込むこともできます。
Note: プラグインの読み込みメソッドは、値を返さないので、変数に返り値を代入しないでください。例示したような使用にとどめてください。
複数のプラグインの読み込み
一つ以上のプラグインを読み込む必要がある場合は、次のように、配列の中で指定することができます:
$this->load->plugin( array('plugin1', 'plugin2', 'plugin3') );
Pluginsプラグインの自動読み込み
あるプラグインがアプリケーションでグローバルに必要とされることがわかった時には、システムを初期化するときに自動読み込みするよう、CodeIgniter に対して通知しておくことができます。application/config/autoload.php ファイルを開き、そこにある配列のautoloadにプラグインを追加することで、そうすることが可能です。
プラグインの使用
まずプラグインを読み込んだ後、通常のPHPの関数を利用するように呼び出します。