私はSmartyでLithium PHPを拡張しようとしていますが、リチウムヘルパーへのアクセスを許可するスマートなプラグインを除いてすべてが機能しています。call_user_func_arrayの適切な使用
私のスマートな機能は、リチウムヘルパーの「キャッチオール」を意図しています。私が苦労している部分は、ヘルパーパラメータをコールバックに動的に追加することです。
簡体コード
$params = array('Google', 'http://www.google.com');
$helper = function($args){
return $this->html->link($args);
};
return call_user_func_array($helper, $params);
これは<a href="/Google">Google</a>
いくつかのさらなるテストは上記のみ奇妙なコールバックに$ params配列...の最初の項目に合格したことを示したとの結果。だから私はそれを自分の配列で包んだ。それを取る、私が説明することができないこと!
return call_user_func_array($helper, array($params));
これは、しかし、ヘルパーは、個々のパラメータとして配列から、配列ではなく、翻訳された引数が渡されているように見える、私は文句を言わないに入るリチウムエラーが発生します。
エラースニペット '(0 => 'Google', 1 => 'http://www.google.com', 'controller' => 'pages', 'action' => 'index')
のパラメータが見つかりません。
私は、call_user_func_arrayメソッドを使用していないことを知りました。
私はこれを私の目的を達成するための唯一の方法であるとは思っていません。あなたが動的に任意の数の引数を動的に渡すことができれば幸いです。
に注意してくださいます$ this->
html
- >link
は完全に動的な関数の引数のために、したがって要件、そのオブジェクトのhtml
とlink
部品が実際に動的に変更されます、私の問題を説明するための簡便法です。
これは完全に機能しました!私のヒーロー! – joseym