前 規約その1 MVCパターン?編

次 規約その3 モデル編

 

おはようございます。ゆうきんです。

前回MVCパターンの説明?が終わったので、ようやく規約の説明に移ります。

今回はコントローラの規約をまとめます。

ちなみに、コントローラはPHPで記述し、クラスを作成します。

なお、サイトにアクセスするためのURLは、コントローラのフォルダ構成とメソッド名から決められます。

http://ドメイン/インストールフォルダ名/コントローラ名/メソッド名/パラメータ という具合です。

私の環境だと http://localhost/fuelphp/sample/index という感じになります。

 

コントローラの規約
  • fuel/app/classes/controller にファイルを作成
  • クラス名の先頭には必ず Controller_ を付ける
  • クラス名(Controller_の後)の頭文字は大文字で他は全て小文字
  • ファイル名とクラス名は同じにしなければならない(ファイル名がsample.php だった場合、クラス名はController_Sample となる)
  • クラス名中の _ (アンダーバー) はフォルダを表すので注意(Controller_Top_Loginだとclasses/controller/top/login.php ということになる)
  • Controllerクラスを継承する
  • コントローラ/メソッド[/パラメータ1[パラメータ2[/…]]]でアクセス出来る(これがサイトのURLとなる)
  • ブラウザ側から実行されメソッドは action_ を付ける
  • コントローラ内でechoを使い出力するのはFuelPHPの規約から外れる(デバッグでは使用OK)

 

コントローラからの返り値について
  • 文字列にキャストできるものしか返してはいけない(Responseオブジェクトで、Viewオブジェクト、文字列 など)

 

コントローラの特殊なメソッド
  • action_index() URLでメソッド名が省略された場合に実行される
  • before() アクションメソッドの実行前に自動実行される
  • after() アクションメソッドの実行後に自動実行される
  • roter() 内部ルーティングを上書き。アクションインデックスが受け取るはずだった引数を受け取り、実行する関数を切り替えることが出来る

 

Restコントローラ
  • 規約にしたがって値を受けおり、サポートしているフォーマットを返す
  • Controller_Restクラスを継承する
  • 実行されるメソッドにはHTTPメソッドの接頭辞を付ける
  • URLのメソッド名に出力フォーマット名の拡張子を付ける
  • サポートフォーマット xml, json, jsonp, csv, php(eval()可能なコード), serialized

 

主にこんなところです。多いなぁと思うかも知れませんが、そんなことないです。

他のフレームワークに比べたら大分少ないですし、融通が聞きます。

ピンと来ない方のために簡単なサンプルソースを載せておきます。

こんな感じです。今回は規約だけを伝えるために、極限まで削りました。

実際のサイトを考慮した書き方はまた今度書きます。

コントラーラにはTemplateコントローラとHybridコントローラというものがあるんですが、またの機会に書きます。

 

では、おやすみなさい。