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と同じ形式で、単数形の単語だけです。