3.4.6 カスタムインフレクション(Custom Inflections)
Cakeの命名規約は非常に便利です。データベースのテーブルを、big_boxes、モデルをBigBox、コントローラをBigBoxesControllerとすることができ、それですべてが自動的に協調するようになります。CakePHPがすべてをつなぎ合わせることができるのは、単語の単数形と複数形をinflecting(語尾変化、屈折)させているからです。
CakePHPのinflector(複数形化、単数形化、キャメルケース化、アンダースコア化するクラス)がうまく動かない場合があります。(特に英語圏以外)CakePHPがFociをFishだと分からないのであれば、カスタムinflection設定ファイルを編集しましょう。ここに独自のルールを書いて、CakePHPに教えることができます。このファイルは、/app/config/inflections.phpにあります。
このファイルの中には六つの変数があります。各変数によって、CakePHPのinflectionの振る舞いを調整できます。
| inflections.php 変数 | 説明 |
|---|---|
| $pluralRules | この配列には、複数形にするためのルールが含まれます。配列のキーがパターンで、値が置き換える値になります。 |
| $uninflectedPlural | 複数形にする必要のない単語を含む配列です。(質量名詞など) |
| $irregularPlural | 単語とその複数形を含む配列です。配列のキーは単数形で、値が複数形です。この配列は、$pluralRulesで定義されているルールに従わない単語を指定するのに用いられます。 |
| $singularRules | $pluralRulesと同じで、この配列だけが単数形化する単語を持っています。 |
| $uninflectedSingular | $uninflectedPluralと同じで、この配列だけが、単数形を持たない単語を持っています。デフォルトでは、$uninflectedPluralと同じです。 |
| $irregularSingular | $irregularPluralと同じ形式で、単数形の単語だけです。 |
See comments for this section
