FC2ブログ

CakePHPの単数形・複数形の命名規則

CakePHPは名前をつけるときに、同じものでも、単数形と複数形の両方を使わないといけないんですね。

簡単に書くと、
データベースのテーブル:複数形のアンダースコア記法
フィールド名:アンダースコア記法
モデルクラス:単数形のキャメル記法
モデルクラスのファイル名:/app/Model/モデルクラス名.php
コントローラクラス:複数形のキャメル記法+Controller
コントローラのファイル名:/app/Controller/コントローラクラス名.php
ビューのテンプレート:/app/View/コントローラ名/アンダースコア表記_アクション名.ctpコントローラの関数名を小文字にしてアンダースコアでつなぐ

という感じです。
問題は、単数形と複数形の両方で名前をつけないといけないということで、
日ごろから使い慣れない日本人にとっては、つらいような気がします。
sをつけるのか、esをつけるのか、はたはま特殊な語尾になるのか、ややこしいですね。

http://www.cpa-lab.com/tech2/inflects/
には、単数形と複数形の相互変換をやってくれるみたいですが、CakePHP version 1.2あたりのものなのでversion2以降でもそのまま使えるかどうかはわかりませんね。

lib/Cake/Utility/Inflector.phpには、実際に単数形と複数形の変換をやっているようなコードがありますが、単数形がpersonで複数形がpeopleなんて、すぐには思いつかないかも。。

実行時にいちいち単数形・複数形変換をやっているのかもしれませんが、
なんか処理時間がもったいないような気がします。
日本人からするとそんなに単数形・複数形にこだわらなくてもいいような気もしますが、
Nativeからすると許せないんですかね。

スポンサーサイト

コメントの投稿

非公開コメント

プロフィール

chattera.net

Author:chattera.net
フリーでソフト開発の仕事をしています。
自作したこのチャットシステムは、何か世の中に役に立つこともあるかと思いますので、お呼びがかかるとうれしいですね。

連絡先は chatteranet@gmail.com です。

また、ソフト開発関連のお誘いもうけたまわっております。

最新記事
最新コメント
最新トラックバック
月別アーカイブ
カテゴリ
検索フォーム
RSSリンクの表示
リンク
ブロとも申請フォーム

この人とブロともになる

QRコード
QR