コントローラの規則[FuelPHP1.7]

メモ:  Category:php

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()
    {
        ・・・
    }
}

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

bluenote by BBB