Symfonyのテンプレートにはlink_to()のような組み込みの関数があらかじめいくつか定義されています。これらのテンプレートから利用できる関数をSymfonyでは、ヘルパーと呼んでいます。このヘルパー関数もプロジェクト毎、アプリケーション毎、モジュール毎に簡単に追加することができます。
ヘルパーの作り方
ヘルパーの作り方は簡単です{proj,app,module}/lib/helperを作ってそこに ヘルパー名+”Helper.php”という名前のファイルを置きその中で関数を定義します。
ヘルパーの使い方
使い方も簡単です。テンプレートの中で
< ?php use_helper('ヘルパー名'); ?>
とするだけでヘルパーが利用可能な状態になります。
JSONヘルパーサンプル
サンプルでひとつ簡単なヘルパーを作成してみます。
最近Javascriptをふんだんに利用したアプリケーションが大流行中ですが、PHPの変数をJavascriptに引き渡すときに
var i = '< ?php echo $i ?>';
のようなコードを書くのはいまいちすっきりしません。
そこでJSONというJavascriptのデータ記述形式をPHPの変数からexportするヘルパーを作成してみます。 実装を検討していたらphp-jsonといういいものを見つけました。今回は、php-jsonをインストールしてヘルパー関数を作りました。
作ったのは JasonHelper.phpです。短いので引用します。
< ?php function export_js($name,$var){ $code = sprintf("var %s = %s ;",$name,json_encode($var)); return javascript_tag($code); } ?>
これだけ。
実際に組み込みは、 Changeset:87で行いました。php-jsonの組み込みが必要なので別ブランチにしてあります。
使い方は
< ?php echo export_js("param",$_param); ?>
< ?php echo export_js("Javascript変数名",PHPの変数); ?>
のように書くだけです。
–
- 追記: PHPで書かれたPEAR/JSON ってのもあるみたいなのでそのうちこっちも組み込んでみます。
- 追記2: PEAR/JSON組み込んでみました。 Changeset:88

