[symfony][memo]エスケープしたくないときにどうするか
2008年04月22日(火)00:31|那須
那須です
symfonyのエスケーピングヘルパーはデフォルトで使っているのですが、たまにエスケープしたくない時があります。そういう場合の対処をtipsとしてまとめておきます。
モジュール単位でエスケーピングしないという選択
例えば、メール作成用モジュールとか
apps/[app]/modules/[module]/config/view.yml
で
escaping strategy: off
とします (apps/[app]/config/view.ymlでデフォルトでエスケーピングを選択している場合)
変数単位でエスケーピングしない方法
変数
$sf_data->getRaw(‘name’);
のように、sfData::getRaw()に変数名を指定するエスケープしない生データを返します。
メソッド
$user->getName(ESC_RAW); $goods->getPrice(WITH_TAXES_TRUE, ESC_RAW);
のようにメソッドの引数にESC_RAWを指定します。詳しい仕組みは追ってないのですが、引数がある場合は、最後の引数の後に、ESC_RAWをつけます。 (上の例はちょっとわかりづらいですが・・・)
最後に
↓出力エスケーピング嫁 http://symfony.xrea.jp/book/07-Inside-the-View-Layer.html という話なんですが、エスケープをデフォルトにしてると、ついエスケープしない方法を忘れがちなので、備忘録としてメモしておきます。 あと、アクション単位で指定することってできないんでしょうかね・・・