携帯サイトの場合、1行あたりの文字数を増やすため、カタカナは半角で揃えるのが定石。
というわけで、symfonyで気軽にHTML出力を半角カナで統一する方法を探る。
viewの出力時にすべてフィルターをかけるようなイメージでいたが、テンプレートに直接書くものを半角カナで入力し、actionなどから出力されるオブジェクトに半角カナエスケープをかけるのがスマート?かと思い、作ってみた。
まずは、独自のカナHelper。
lib/helper/EscapingKanaHelper.php
[php]
[/php]
ESC_ENTITIES関数をそのまま流用し、mb_convert_kana関数を付け加えるような、helperを作成した。
そしてsettings.ymlで宣言する。
apps/config/settings.yml
[code]
all:
.settings:
escaping_strategy: both
escaping_method: ESC_ENTITIES_KANA
standard_helpers: [Partial, Cache, Form, EscapingKana]
[/code]
テンプレートに直接、全角カナを書かれてしまうと、統一されないのが難点。
やっぱFilterかな。。
Check Tweet