ヘルパ関数
ヘルパは、その名前のとおり、タスクの実行に役立つものです。各ヘルパのファイルは、特定分野についての関数のコレクションです。リンクを作成するのを支援するURL ヘルパ、フォームの要素を作成するのに役立つ Form ヘルパ、様々なテキスト整形処理を行うText ヘルパ、クッキーを読み書きするCookie ヘルパ、ファイルを取り扱うのに役立つ File ヘルパ などがあります。
CodeIgniter の中の大部分のシステムとは違い、ヘルパはオブジェクト指向の形式で書かれていません。シンプルな手続き型の関数です。各ヘルパ関数は、他の関数に依存することなく、特定のひとつのタスクを行います。
CodeIgniterはデフォルトでは、ヘルパを読み込みません。ヘルパを利用する最初のステップは、それを読み込むことです。一旦読み込まれると、 コントローラ と ビュー の中でどこでも利用できます。
ヘルパは通常は、 system/helpers ディレクトリに格納されています。 helpers という名前のフォルダを application フォルダの中に作って、その中にヘルパを入れることもできます。CodeIgniter は system/application/helpers ディレクトリを最初に認識します。 このディレクトリが存在しない時や、読み込もうとするヘルパがこのディレクトリの中にない場合、CodeIgniterは代わりにグローバルな system/helpers フォルダを探します。
ヘルパの読み込み
ヘルパファイルを読み込むのは、次のようなメソッドを使う、非常に単純なものです:
$this->load->helper('name');
ここでの name は、ヘルパの名前になります。 .php ファイルの拡張子やファイル名についている"helper" をあらわす部分 [ 訳注:ヘルパの物理ファイル名の末尾には「_helper」というサフィックスがついています ] は不要です。
たとえば、url_helper.php というファイル名の URL ヘルパ のファイルを読み込むには、次のようにします:
$this->load->helper('url');
ヘルパは、利用する前にロードしさえすれば、コントローラのメソッドの中の(良いやり方ではありませんが、あるいはビューファイルの)どこでロードしてもかまいません。コントローラのコンストラクタでロードすれば、どのメソッドでも利用できるようになりますし、特定のメソッド内で必要な時だけ読み込むこともできます。
Note: ヘルパの読み取りメソッドは、値を返さないので、変数に返り値を代入しようとしないでください。例示したように使用するにとどめてください。
複数のヘルパを読み込む
一つ以上のヘルパを読み込む必要がある場合は、次のように、配列の中で指定することができます:
$this->load->helper( array('helper1', 'helper2', 'helper3') );
ヘルパの自動読み込み
あるヘルパがアプリケーションでグローバルに必要とされることがわかった時には、CodeIgniter に対して、システムを初期化するときに自動読み込みするよう、通知しておくことができます。application/config/autoload.php ファイルを開き、そこにある配列のautoloadにヘルパを追加することで、そうすることが可能です。
ヘルパの使用
使いたい関数が含まれるヘルパファイルをまず読み込んだ後、通常のPHPの関数を利用するように呼び出します。
たとえば、ビューのファイルで anchor() 関数を使ってリンクを生成するには、次のようにします:
<?=anchor('blog/comments', 'ここをクリック');?>
ここでの "ここをクリック" はリンクの名前になり、"blog/comments" は、リンク先のコントローラ/メソッドのURIになります。
この後は、何をすればよいですか?
目次の中に、利用可能な全ヘルパファイルのリストが書いてあるのがわかると思います。それぞれを閲覧して、何をするものなのかを見てみてください。