やかんブログ

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

この記事に関するお問い合わせはこちら

ページの先頭へ