名前規則
Curryの動作条件
Curryではクラス名やメソッド名などの名前規則が重要です。これによりフレームワークとして成り立っています。
一般的にクラス名等の名前付け規則には以下の3パターンが存在します。
- パスカルケース - 先頭文字が大文字で単語の区切りの先頭も大文字(例:IndexController)
- キャメルケース - 先頭文字が小文字で単語の区切りの先頭は大文字(例:indexController)
- スネークケース - 全て小文字で単語の区切りに"_"を挟む(例:index_controller)
Curryでもこの3パターンを使い分けます。
クラス名
パスカルケース
例:IndexController
メソッド名
キャメルケース
例:getRequest
ファイル名
スネークケース
例:index_controller.php
クラス定義のphpファイルの場合、ファイルとクラスは必ず1対にし、1ファイルに複数クラスを定義することは決してしません。これは、クラスの定義位置を探しやすくするためです。
クラス名とその定義ファイル名は一定の規則で結びつくようにします。
すなわち、ファイル名は中に定義されているクラス名を全て小文字に直し、単語の区切りに"_"をはさんだ形にになるようにします。
PHPファイルの場合は拡張子は全て"php"です。
URL
スネークケース
例:http://www.xxxx.com/user_cart/add_product
URLに含まれるコントローラー名とアクション名は、全て小文字で単語の区切りに"_"をはさみます。
上記の例のURLの場合、UserCartControllerのaddProductメソッドが呼び出されます。
データベーステーブル名
スネークケース
例:cart_product
モデルクラス名とテーブル名も一定の規則性の上に成り立ちます。
モデルクラス名の命名規則は他のクラスと同じ、先頭と単語の頭を大文字にします。対応するテーブル名は全て小文字で単語の区切りに"_"をはさみます。
テーブル名:cart_product → モデルクラス名:CartProduct
接頭語・接尾語・拡張子の規則
例えばコントローラークラスであればクラス名の接尾語として"Controller"をつけるといったような規則も存在します。
以下に挙げるものはデフォルトの規則は存在しますが、設定を変更することが可能です。
| コントローラークラスの接尾語 | "Controller" |
| アクションメソッドの接尾語 | なし |
| PHPファイルの拡張子 | "php" |
| ビューテンプレートの拡張子 | "php" |
| Smarty利用の場合のビューテンプレートの拡張子 | "tpl" |
名前規則のカスタマイズ
名前規則はカスタマイズが可能です。
Curryの名前規則はNameManagerというクラスで集約管理されています。
NameManagerクラスにはあらゆる命名規則の設定メソッドが用意されており、自由に設定が可能です。
NameManagerクラスの詳細はNameManagerのリファレンスを参照してください。
以下に一例を示します。
class Initializer extends InitializerStandard { public function initialize() { NameManager::setClassType(NameType::SNAKE); NameManager::setMethodType(NameType::SNAKE); NameManager::setActionSuffix('action'); } }
この場合、URLと呼び出されるクラスの関係は以下のようになります。
URL:
http://www.xxxx.com/user_cart/add_product
呼び出されるメソッド
user_cart_controller::add_product_action()