コントローラの規則[FuelPHP1.7]
URL とコントローラの関係
MVC における「C」の部分、 controller は URL と対応付けられており URL の構造はコントローラクラスのクラス名、メソッドと対応します。
FuelPHP の URL 構造は、次のようになります。
http://hogehoge.net/<controller>/<action>/<引数1>/<引数2>/・・・
例えば、次のような URL の場合
http://hogehoge.net/blog/edit/
コントローラは、 app/classes/controller に配置し、上記例の URL と対応するコントローラは次のようになります。(ファイル名:blog.php)
class Controller_Blog extends Controller
{
function action_edit()
{
・・・
}
}
コントローラのクラス名は、「 Controller_ 」というプレフィックスを付けコントローラ名として先頭を大文字にした名前を続けます。
URL から呼ばれるメソッドには、「 action_ 」というプレフィックスを付けます。
コントローラの命名規則
基本的なコントローラの命名規則は、次のようになります。
- クラス名には「Controller_」プレフィックスを付ける
- 「Controller_」に続く名前の先頭は大文字にする
- URL を通じてリクエストされるメソッドは「action_」プレフィックスを付ける
- クラスのファイル名は小文字にする
メソッドが省略された場合
リクエストされる URL でメソッドが省略された場合、 action_index() メソッドが実行されます。
http://hogehoge.net/blog/
コントローラをサブディレクトリに配置する
コントローラをサブディレクトリに配置する場合、 URL は次のようになります。
http://hogehoge.net/<サブディレクトリ名>/<controller>/<action>/<引数1>/<引数2>/・・・
コントローラの配置先は、 app/classes/controller/サブディレクトリ/ に配置しクラス名に「_」を使用します。
class Controller_サブディレクトリ名_Blog extends Controller
{
function action_edit()
{
・・・
}
}
※デフォルトルールとして、クラス名の「_」はディレクトリの区切りを意味する。