コントローラの規則[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()
    {
        ・・・
    }
}

※デフォルトルールとして、クラス名の「_」はディレクトリの区切りを意味する。