▼ 2008/03/02(日) Inflectorクラス分析。規約上の単語変化について
Inflectorクラスのメソッドの使い方。
CakePHPには、クラスやモデル命名の規約があり、英語での単数形、複数形を使い分けるようになっています。
それらの変化は、Inflectorクラスが受け持っていて、こんな感じで用意されている。
使い方は簡単で、
面倒な方は、
CakePHP 規約ワードメーカー
をどうぞ。
などは、特別ルールとして処理されるようになっている(これらは、拡張することが可能)。
(他にも特殊変化する単語はたくさんある)
だから、
pluralize( 'ox' ) は、ちゃんと oxen になる(ox:牛)。
ところが、、、、複数の単語を組み合わせた単語 & 特殊変化系の場合は若干の注意を要するのだ。。。。
続く。。。モデル名にするのに、要注意な単語
CakePHPには、クラスやモデル命名の規約があり、英語での単数形、複数形を使い分けるようになっています。
それらの変化は、Inflectorクラスが受け持っていて、こんな感じで用意されている。
| 単数形 → 複数名 | pluralize( $word ) |
| 複数形 → 単数形 | singularize( $word ) |
| 他の形式 → CamelCase | camelize( $lowerCaseAndUnderscoredWord ) |
| CamelCased → アンダースコア | underscore( $camelCasedWord ) |
| ClassName → テーブル名 | tableize( $className ) |
| テーブル名 → クラス名 | classsify( $tableName ) |
| CamelCased → 関数名 | variable( $word ) |
| アンダースコア → 人間に読みやすく (最初を大文字、アンダースコアを空白に置き換え) | humanize ( $lowerCaseAndUnderscoredWord ) |
| ゴミ除去 (文字でないもの、空白の連続を空白ひとつに置き換え) | slug ( $word ) |
Inflector::pluralize( $word )などとするだけ。
面倒な方は、
CakePHP 規約ワードメーカー
をどうぞ。
特殊な変化系も考慮されている
例えば、| 単数形 | 複数形 | |
| child | children | 子供 |
| man | men | 人、男性 |
| person | people | 人 |
| ox | oxen | 牛 |
(他にも特殊変化する単語はたくさんある)
だから、
pluralize( 'ox' ) は、ちゃんと oxen になる(ox:牛)。
ところが、、、、複数の単語を組み合わせた単語 & 特殊変化系の場合は若干の注意を要するのだ。。。。
続く。。。モデル名にするのに、要注意な単語
▼ コメント(0件)
- TB-URL http://www.cpa-lab.com/tech/0100/tb/
-
▼
Inflectorのバグ?要注意単語集。単数・複数変化もの
CPA-LABテクニカル クラス名やモデル名に使う時に注意すべき単語 要注意タンゴ ox牛 atlas地図 genie魔神 genus種類 graffito掻き絵 loaf塊 money金 move動き mythos神話体系、価値観 numen精霊 penisペ ニス なぜ注意が...