「ふつうのform」のためにFuzzy plugin for CakePHPを作ってみた

ふつうのformをつかいたい - はまちや2 - ニコニコ超会議2012を見て「確かになー」と思うところが多々あったので、
「ふつうのform」を作るための簡単なユーティリティをまとめる目的でFuzzy pluginを作ってみた。


k1LoW/Fuzzy · GitHub

Fuzzy pluginって何?

Fuzzy pluginは主に何をするかというと、「ユーザの入力を決められたルールに従って調整するために変換/分割」する(AdjustableBehavior)。

各フィールドに

  • mb_convert_kana()
  • trim()
  • mb_str_replace()
  • 電話番号分割
  • 郵便番号分割
  • 住所分割

などの調整のためのルールを設定することで、CakePHPのバリデーションチェック前にユーザの入力をシステム側の都合に合わせたフォーマットに変換できる。
詳しい使い方はテストケースを参照。

入力の分割ロジック

気になる分割のロジックは、

  • 電話番号:総務省の市外局番リストを利用して作成
  • 郵便番号:3桁と4桁に分けるだけ
  • 住所:郵便局の住所データを利用して独自に正規表現を作成。一応全住所対応(ただし、正しい住所入力に限る)

だったりするので利用は自己責任で。

今後

「システム側の都合」はもう少しいろいろあると思うので、ぼちぼち対応していってみたい。