Home » PHP, Programing » symfonyで携帯サイト用に出力を半角カナで統一

Check     このエントリーをはてなブックマークに追加

携帯サイトの場合、1行あたりの文字数を増やすため、カタカナは半角で揃えるのが定石。

というわけで、symfonyで気軽にHTML出力を半角カナで統一する方法を探る。

viewの出力時にすべてフィルターをかけるようなイメージでいたが、テンプレートに直接書くものを半角カナで入力し、actionなどから出力されるオブジェクトに半角カナエスケープをかけるのがスマート?かと思い、作ってみた。

まずは、独自のカナHelper。

lib/helper/EscapingKanaHelper.php

PHP:
  1. <?php
  2.  
  3. function esc_entities_kana($value)
  4. {
  5.   $value = mb_convert_kana($value, 'k', 'UTF-8');
  6.   return is_string($value) ? htmlentities($value, ENT_QUOTES, sfConfig::get('sf_charset')) : $value;
  7. }
  8.  
  9. define('ESC_ENTITIES_KANA', 'esc_entities_kana');
  10.  
  11. ?>

ESC_ENTITIES関数をそのまま流用し、mb_convert_kana関数を付け加えるような、helperを作成した。

そしてsettings.ymlで宣言する。

apps/config/settings.yml

CODE:
  1. all:
  2.   .settings:
  3.     escaping_strategy:      both
  4.     escaping_method:        ESC_ENTITIES_KANA
  5.     standard_helpers:       [Partial, Cache, Form, EscapingKana]

テンプレートに直接、全角カナを書かれてしまうと、統一されないのが難点。

やっぱFilterかな。。

Check     このエントリーをはてなブックマークに追加
タグ: ,