携帯サイトの場合、1行あたりの文字数を増やすため、カタカナは半角で揃えるのが定石。
というわけで、symfonyで気軽にHTML出力を半角カナで統一する方法を探る。
viewの出力時にすべてフィルターをかけるようなイメージでいたが、テンプレートに直接書くものを半角カナで入力し、actionなどから出力されるオブジェクトに半角カナエスケープをかけるのがスマート?かと思い、作ってみた。
まずは、独自のカナHelper。
lib/helper/EscapingKanaHelper.php
PHP:
-
<?php
-
-
function esc_entities_kana($value)
-
{
-
}
-
-
-
?>
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]
テンプレートに直接、全角カナを書かれてしまうと、統一されないのが難点。
やっぱFilterかな。。
Check Tweet

