ようこそゲストさん

CPA-LABテクニカル

2008/03/02(日) Inflectorクラス分析。規約上の単語変化について

Inflectorクラスのメソッドの使い方。
CakePHPには、クラスやモデル命名の規約があり、英語での単数形、複数形を使い分けるようになっています。
それらの変化は、Inflectorクラスが受け持っていて、こんな感じで用意されている。
単数形 → 複数名pluralize( $word )
複数形 → 単数形singularize( $word )
他の形式 → CamelCasecamelize( $lowerCaseAndUnderscoredWord )
CamelCased → アンダースコアunderscore( $camelCasedWord )
ClassName → テーブル名tableize( $className )
テーブル名 → クラス名classsify( $tableName )
CamelCased → 関数名variable( $word )
アンダースコア → 人間に読みやすく
(最初を大文字、アンダースコアを空白に置き換え) 
humanize ( $lowerCaseAndUnderscoredWord )
 ゴミ除去
(文字でないもの、空白の連続を空白ひとつに置き換え) 
slug ( $word )
使い方は簡単で、 
Inflector::pluralize( $word )
などとするだけ。


面倒な方は、

CakePHP 規約ワードメーカー

をどうぞ。

 特殊な変化系も考慮されている

例えば、
単数形複数形
childchildren子供
manmen人、男性
personpeople
oxoxen
などは、特別ルールとして処理されるようになっている(これらは、拡張することが可能)。
(他にも特殊変化する単語はたくさんある)


だから、
pluralize( 'ox' ) は、ちゃんと oxen になる(ox:牛)。


ところが、、、、複数の単語を組み合わせた単語 & 特殊変化系の場合は若干の注意を要するのだ。。。。


続く。。。モデル名にするのに、要注意な単語

名前:  非公開コメント   

  • TB-URL  http://www.cpa-lab.com/tech/0100/tb/
  • Inflectorのバグ?要注意単語集。単数・複数変化もの CPA-LABテクニカル spok
    クラス名やモデル名に使う時に注意すべき単語 要注意タンゴ ox牛 atlas地図 genie魔神 genus種類 graffito掻き絵 loaf塊 money金 move動き mythos神話体系、価値観 numen精霊 penisペ ニス なぜ注意が...