那須です
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
という話なんですが、エスケープをデフォルトにしてると、ついエスケープしない方法を忘れがちなので、備忘録としてメモしておきます。
あと、アクション単位で指定することってできないんでしょうかね・・・