独自のヘルパークラスの作成 
概要 
Bshe_Viewでは、独自のヘルパークラスを定義することができます。
ヘルパークラスは、Bshe_ViewでWebデザイン側でロジックを選択できる唯一の機能となります。
また、その実装は、処理されるべき値に対してのみ実行可能なもののため、非常に簡単に実装が可能です。
ヘルパークラス判別の仕組み 
Bshe_Viewでは、HTML上のキー属性から、実際にそのタグに対して処理を実施するヘルパークラスを判別し処理を実行します。
キー属性のルールから「ヘルパー名」が抽出されますが、
これは実際のクラス名ではなく、その一部になります。
まず、ヘルパークラス判別については、以下の4つの項目が設定可能です
- helperClassPath: 独自ヘルパークラスのパス(配列により複数設定可能)
- helperClassPrefix: 独自ヘルパークラスの頭文字
- builtinHelperClassPrefix: ビルトインヘルパークラスの頭文字(通常は指定不要)
取り出されたクラス名は以下の順序で判別され、処理する実際のクラスを決定します。
- 独自定義のヘルパークラスを検索
- 独自設定したhelperClassPathから、ヘルパー名.php(ヘルパー名は自動で頭を大文字、その他を小文字に変換しております)というファイルがあるかを確認
- ファイルがある場合は、そのファイルをrequire_onceし、処理対象クラスが読み込まれたかをチェックします。
- ビルトインクラスの検索
- 独自定義のクラスが見つからなかった場合、あらかじめ決められたビルトインのヘルパークラスを検索します。
- この際、もし設定していれば[builtinHelperClassPrefix]_処理クラス名というクラスを、設定されていない場合は、デフォルトのクラスを検索します。
具体的に例を示します。
- 以下のように設定が行われている場合
- helperClassPath: '/resource'
- helperClassPrefix: 'MyClass_'
- キー属性が「bshe:myhelper:myclass:mymethod」だった場合
この場合、クラスは次のように決められます。
- 独自定義のヘルパークラスを検索
- '/resource'から、「Myhelper.php」というファイルがあるかを確認
- ファイルがある場合は、そのファイルをrequire_onceし、「MyClass_Myhelper」クラスが読み込まれたかをチェックします。
- 正しく読み込まれれば、このキー属性に対しては、「MyClass_Myhelper」クラスのsetViewメソッド(このメソッド名は決まりです)が呼ばれます。
実装の仕方 
- ヘルパークラスを作成する場合は、Bshe_View_Helper_Html_Abstractを必ず継承しなくてはなりません。
- ヘルパークラスの実際のヘルパーメソッドは「setView」という名称のスタティックメソッドでなくてはなりません。
- setViewメソッドは1つの配列を引数に取り、出力対象となる文字列を返値にしなくてはなりません。
- ヘルパーの引数配列は以下の構造となっています。
array(
'value' => 処理対象となる値,
'helperParams' => [[キー属性>Bshe/manual/Bshe_View/doc/Designer/key]]から抽出されたヘルパーの引数配列,
'templateClass' => テンプレートクラス,
'params' => 独自リソースクラスのメソッドの引数と同じparams配列
)
- ここでparamsの中の配列は独自リソースクラスの作成で記載したものと同じものが渡されます。
- テンプレートクラスのインスタンスを取得しますが、ここではあくまで参照用として利用してください。(仕組み上この配列へ修正を加えても反映されないことがあります)