Smartyで困ったこと

Kazuya Takato

Kazuya Takato

smartyはあんまり使用してなかったのですが、最近本格的に使い始めました。
それで今日困ったことをメモ。

smartyを使っていて、表示項目を簡単にエスケープしたかった。
そしたらdefalut_modeifiresってのを発見。
こいつを指定してやればhtmlを全ての変数に指定したエスケープを行ってくれるらしい。

こりゃ便利だなと思って、とりあえず下のようにhtmlを指定した。

$smarty->defalut_modeifires = array('escape:"html"');

結果、今まで正常に動いてた画面にエラーが。
どうもこいつを指定してやると、{foreach}とかで使用している、配列もエスケープしてるようだ。

とりあえず、エスケープは下のように1つ1つやるしかないのかな。

{$変数名|escape[:"html"]}

で、困ったのがここからでdefalut_modeifiresを指定した部分を消してもエラーが消えなくなった。

原因はキャッシュだった。
smartyは意識しなくてもキャッシュを残して速度を上げてくれるそうで。
エラー時のキャッシュが残ったままだったのが原因だったみたい。
キャッシュを消したら、元通り動くようになった。

便利な機能だけど、意識してないとまた起きてもおかしくなさそうだなぁ。
覚えておかないと。

LIGはWebサイト制作を支援しています。ご興味のある方は事業ぺージをぜひご覧ください。

Webサイト制作の実績・料金を見る

この記事のシェア数

Kazuya Takato
Kazuya Takato 取締役 COO 兼 CTO / DX事業本部長 / 高遠 和也

1983年生まれ。SIerとしてのキャリアをスタートし、JavaやC#を中心に多岐にわたる開発プロジェクトにエンジニアとして参加。その経験を活かし、LIGを創業。バックエンドおよびフロントエンドエンジニアとしての深い知識と経験をもとに、多様なプロジェクトに従事。現在は、取締役COO兼CTO、DX事業本部長として、社内の体制やルールの最適化、AI技術の推進など、経営戦略の一翼を担う。

このメンバーの記事をもっと読む
デザイン力×グローバルな開発体制でDXをトータル支援
お問い合わせ 会社概要DL