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

更新日: 2016年2月25日

実行時間: 0.0069

ユーザヘルパー

 この項では、CodeIgniterにデフォルトで備わっているヘルパーファイルとは別に、
ユーザ独自のヘルパーファイルの開発方法と利用方法について解説しています。

ユーザヘルパーの作成

  • ユーザヘルパーファイルの配置

 ユーザヘルパークラスファイルは「 application/helpers/ 」ディレクトリ配下に設置します。
 また、サブディレクトリを作成して、その配下に配置することも可能です。

  • ユーザヘルパーファイル名

 ユーザヘルパーのファイル名は、ヘルパー名の後に「_helper」と「.php」拡張子を付けたものになります。

    application/helpers/hoge_helper.php

ヘルパー関数の定義

 ヘルパーファイルは、クラスファイルではなく、1つ以上の関数を定義した単なる関数定義ファイルです。

 ユーザ定義の関数名は、PHP関数やPHP予約語、CodeIgniterの予約語などを除けば自由に
付けることができます。 ただし、CodeIgniterに用意されているヘルパー関数名と重複する場合は
ユーザヘルパーの関数が優先され、実行されますので注意が必要です。

 以下は、ユーザヘルパーの簡単なサンプルです。

    • hoge_helper.php
    <?php
    /*
     * application/helpers/hoge_helper.php
     */
    
    if ( ! function_exists('hello'))
    {
        function hello($string='')
        {
            if (is_string($string)) {
                return $string;
            }
            return '';
        }
    }
    
    if ( ! function_exists('hoge'))
    {
        function hoge($data=array())
        {
            $string= '';
            if (is_array($data)) {
                for($i=0; $i<count($data); $i++) {
                    if (is_string($data[$i])) {
                        $string .= $data[$i] . ' ';
                    }
                }
            }
            return $string;
        }
    }
    

ユーザヘルパーの利用

 CodeIgniterのヘルパーと同様に、「CI_Loader」クラスの「helper()」メソッドでロードします。

 一度、ロードされるとと、そのプロセス内では、どこからでもそのヘルパーファイルに 定義されている関数が利用可能となります。

    $this->load->helper('hoge');
    
    echo hello('world');
    // world
    
    $data = array('hello', 'world');
    echo hoge($data);
    // hello world