setCallbackFunction()

setCallbackFunction() -- コールバック関数を設定する

概要

require_once 'HTML/Template/Sigma.php';

mixed HTML_Template_Sigma::setCallbackFunction (string $tplFunction, mixed $callback [, bool $preserveArgs = FALSE])

説明

コールバック関数を設定します。Sigma のテンプレートには、関数コールを含めることができます。 つまり、テンプレートの作者は、func_h1("h1 に埋め込むもの") のように特別なプレースホルダをテンプレートに追加することができるのです。 Sigma はテンプレート内のこれらのプレースホルダをパースし、 それに対応するコールバック関数を定義することができます。 コールバックは、それを含むブロックが parse() されたときに自動的にコールされます。

これらのテンプレート関数の引数には、変数プレースホルダを含めて func_translate('Hello, {username}') のようにすることができます。 しかし、ブロックや別の関数コールは含められないことに注意しましょう。

コールバックを使用して、(表示周り以外の) ロジックをテンプレートに追加してはいけません。 大量のコールバックでロジックを実装することは、車輪の再発明になってしまいます。 その代わりに、XML/XSLT やネイティブの PHP スクリプト、 あるいはその他のテンプレートエンジンの使用を考慮しましょう。

スクリプト
<?php
function h_one($arg)
{     
    return '<h1>' . $arg . '</h1>';
}  
// ...  
$tpl = new HTML_Template_Sigma(' ... ');
// ...  
$tpl->setCallbackFunction('h1', 'h_one');
// ...
$tpl->show()
?>
テンプレート
...
func_h1('H1 Headline')
...

パラメータ

string $tplFunction

テンプレートで使用する関数名。

mixed $callback

コールバック。call_user_func_array() で使用できる任意の形式。

boolean $preserveArgs

TRUE の場合は、関数コールの前に引数内の変数置換を行いません。

返り値

成功した場合に SIGMA_OK、失敗した場合にエラーオブジェクトを返します。

例外・エラー

表 47-1PEAR_Error の値

エラーコードエラーメッセージ原因対応
SIGMA_INVALID_CALLBACKCallback does not exist$callback は既存の関数あるいはメソッドではありませんスペルを調べます。また、メソッドコールバックを使用する場合はオブジェクトのインスタンスが作成されているかどうかを調べます

注意

この関数は、スタティックにコールする ことはできません。