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


プラグイン

プラグインもヘルパと同様に動作します。違いは、ヘルパは通常関数のコレクションであるのに対し、プラグインは常にひとつだけの関数を提供するということです。ヘルパはまた、コアシステムの一部として考えられたものですが、プラグインは、コミュニティで作成され、共有されることを意図しています。

プラグインは、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') );

プラグインの自動読み込み

あるプラグインがアプリケーションでグローバルに必要とされることがわかった時には、システムを初期化するときに自動読み込みするよう、CodeIgniter に対して通知しておくことができます。application/config/autoload.php ファイルを開き、そこにある配列のautoloadにプラグインを追加することで、そうすることが可能です。

プラグインの使用

まずプラグインを読み込んだ後、通常のPHPの関数を利用するように呼び出します。