CakePHPのInflectorクラスを使って単数形を複数形に変換する

2017年2月10日

Inflectorクラスの使い方

使う時は、

$s = Inflector::pluralize('orange');
e($s);//oranges

という感じで使用する。

使いどころとしては、
コントローラー名⇔モデル名の変換
テーブル名⇔モデル名の変換
を行う時に使う。

汎用的な処理を実装する際には重宝するので覚えておきたい。

Inflectorクラスの関数と説明は下記の通り。

pluralize:単数形を複数形に変換する
orange→oranges

singularize:複数形を単数形に変換する
oranges→orange

camelize:アンダーバーを削除してキャメルケースに変換する
oranges_and_lemons→orangesAndLemons

underscore:キャメルケースの大文字の前にアンダーバーを入れ、さらに大文字を小文字に変換する
orangesAndLemons→oranges_and_lemons

humanize:アンダーバーを半角スペースに、先頭文字を大文字に変換する
oranges_and_lemons→Oranges And Lemons

tableize:モデルのクラス名をテーブル名に変換する
OrangeId, LemonId→oranges_id, lemons_id

classify:テーブル名をモデルのクラス名に変換する
oranges_id, lemons_id→OrangeId, LemonId

slug:特殊なアルファベットをラテン文字に変換する。対応する文字がなければアンダーバーに変換する。
sůl→sui