CakePHP

PHPのフレームワーク「CakePHP」ではカラム名などで下記のような小文字とアンダーバー(アンダースコア)で組合せた文字列(カラム名)を使うことが多々あります。

  • apple_pie
  • some_thing
  • people_person

そして、CakePHPではこれら文字列をView(ビュー)を表示するときにアンダーバーを削除して先頭文字とその後の文字を大文字にした下記のような文字列(キャメルケース)に自動で変換されます。

  • ApplePie
  • SomeThing
  • PeoplePerson

先日、ある文字列を上記のように変換する必要があったのですが、CakePHPのライブラリできっとできるはずだと思い、探したところやっぱりその様なライブラリが標準搭載されていましたので、下記にメモがてら明記しておきます。

文字列のアンダーバーを外したり小文字を大文字などCakePHPでよく使う文字列に変換することができるライブラリは「Inflector」でした。

このInflectorでは上記のような文字列の変換以外に逆の変化や単数形を複数形に変換などを行うことができます。

Inflector::pluralize($singular)
単数形を複数形に変換(例:Apple → Apples)
Inflector::singularize($plural)
複数形を単数形に変換(例:Apples → Apple)
Inflector::camelize($underscored)
アンダーバーを外したキャメルケースに変換(例:some_thing → SomeThing)
Inflector::underscore($underscored)
キャメルケースをアンダーバー形式に変換(例:someThing → some_thing)
Inflector::humanize($underscored)
アンダーバーを削除して単語の1文字目を大文字に変換(例:some_thing → Some Thing)
Inflector::tableize($underscored)
キャメルケースをアンダーバー形式に変換(例:SomeThing → some_thing)
Inflector::classify($underscored)
アンダーバーを削除して単語の1文字目を大文字に変換(例:some_thing → Some Thing)
Inflector::variable($underscored)
アンダーバーを削除して先頭文字以外の単語の1文字目を大文字に変換(例:some_thing → someThing)

こうやって見ると似たような機能がありますが、詳細はドキュメントを確認してください。

Inflector(CakePHP 1系)
Inflector(CakePHP 2系)
Inflector(CakePHP 3系)

CakePHP2 実践入門 (WEB+DB PRESS plus)

著者/訳者:安藤 祐介 岸田 健一郎 新原 雅司 市川 快 渡辺 一宏 鈴木 則夫

出版社:技術評論社( 2012-09-29 )

定価:

Amazon価格:¥ 3,110

単行本(ソフトカバー) ( 416 ページ )

ISBN-10 : 4774153249

ISBN-13 : 9784774153247