FuelPHPでまず1ページ表示成功

ZendFramework2を捨てる決心をさせたルーティングまわりはまだ手をつけていないが、既存のページを表示させることができた。まだ1ページであるが。

Smarty3を使っているので、最初にしては敷居が高いのと、グラフ描画のデータをJSONでビューに渡し、「エスケープさせないで」そのまま出力させなければいけないので、時間がかかった。

モデルはZendFramework2からの流用でOK。SQLビルダーの仕様の違いだけで、同じSQLを発行するようにすればいいだけであるから、機械的な作業である。

コントローラーは文法を合わせて、モデルを呼び出して、ビューに渡すだけなので、内容はない。

ビューはSmarty3なので、そのままでOK。ただし拡張子だけがtplからsmartyに変更になった。

ビューにデータを渡すところでJSONの生データが出力できなくて困った。「”」が"になってしまう。これだとJSONと認識されなくなってしまうので、JavaScriptがデータを使えない。

何度も何度も細かく書き直した結果、次のページが見つかった。

FuelPHP でのセキュリティ対策(1)

この中の、出力フィルタの、項目である。買った参考書には索引・目次には該当項目がない(通読していないので見落としはあるかもしれないが)。

これによると、設定を変えていない場合、ビューに渡す変数は、「全て」デフォルトでHTMLエスケープされる、とある。

ビューに生の例えばHTMLを渡したいのであれば、例えば、

$view = View::forge(‘form/index’);
$view->set_safe(‘error_html’, $val->show_errors());
return $view;

という書き方になるようである。
私はSmartyを使っているので、次のようになった。FuelPHP入門のP.80のSmartyのビューの使い方とは変わってくる。

$view = View_Smarty::forge(‘count/index’);
$view->set_safe(‘json_var’, $JSON);
$view->set(‘normal_var’, $var);
return $view;

ビュー変数の作り方はこのようになるようだ。参考書ではResponseからforgeしているが、直接forgeして使えるようである。また、このように作成した、View_Smarty変数について、setやset_safeができて、表示できるのが確認できた。

これで一つ進んだので、次は、ルーティングと残りのページである。

コメント