こんにちは。たいら(@tairaengineer2)です。
転職を繰り返し現在4社経験している、11年目エンジニアです。
この記事では、 FuelPHPのコントローラーについて丁寧に解説していきます。
前提条件:実行環境について
実行環境は以下の通りです。
OS | Windows10 |
---|---|
PHPのバージョン | 8.0.3 |
FuelPHPのバージョン | 1.8.2 |
XAMPPのバージョン | 8.0.3 |
この記事ではFuelPHPのプロジェクトは
C:\xampp
に配下に【fuelphp】という名前で配置しています。
Windows10の環境でFuelPHPをインストールするやり方は以下の記事をご参考ください。
FuelPHPのコントローラーを解説
FuelPHPのコントローラーについて
- コントローラーを格納する場所
- ファイル名とディレクトリ名
- Controllerクラスを継承する
- コントローラーのクラス名
- メソッド名
という順で解説します。
コントローラーを格納する場所
コントローラーを新規作成したい場合
プロジェクト\fuel\app\classes\controller
配下に格納する必要があります。
コントローラーは
1 |
php oil g controller 【作成するコントローラーの名前】 【アクション名1】 【アクション名2】 【アクション名3】… |
というコマンドで新規作成することもできます。
詳しくはこちらの記事をご参考ください。
ファイル名とディレクトリ名
FuelPHPのすべてのファイルに対しての規約で、ファイル名とディレクトリ名はすべて小文字で指定します。
例外はありません。
Controllerクラスを継承する
コントローラーは、Controllerクラスを継承することが必要です。
1 2 3 4 |
class Controller_Sample extends Controller { …… } |
Controller_TemplateクラスのようなControllerクラスを継承したクラスを継承する、でもOKです。
コントローラーのクラス名
コントローラーのクラス名はプレフィックスに【Controller_】を付ける必要があります。
【Controller_】の後の単語は、先頭の文字のみ大文字でそれ以外は小文字にします。
1 2 3 4 |
class Controller_Sample extends Controller { …… } |
もし以下の画像のようにサブディレクトリにコントローラーを格納している場合
ディレクトリ名とファイル名を【_(アンダースコア)】で区切ってクラス名を指定します。
上記のように
プロジェクト\fuel\app\classes\controller\test
にsample.phpというコントローラーがある場合
1 2 3 4 |
class Controller_Test_Sample extends Controller { …… } |
というクラス名を指定します。
メソッド名
URLを通じてリクエストを受け付けるメソッドには【action_】というプレフィックスを付ける必要があります。
1 2 3 4 5 6 7 |
class Controller_Sample extends Controller { public function action_sample() { # 処理 } } |
プレフィックスが【action_】だと
- GET
- POST
- PUT
など、さまざまなHTTPリクエストを受け付けることができます。
GETだけ、POSTだけ、とHTTPリクエストの対象を絞りたい場合、プレフィックスに【get_】または【post_】を付けます。
1 2 3 4 5 6 7 8 9 10 11 12 |
class Controller_Sample extends Controller { public function get_sample() { # getリクエストのみ受け付ける } public function post_hogehoge() { # postリクエストのみ受け付ける } } |
詳しくはこちらの記事をご参考ください。
まとめ:FuelPHPのコントローラーの特徴を覚えよう
以上がFuelPHPのコントローラーについての解説でした!
あなたのご参考になったのなら、とても嬉しいです(*´▽`*)
ではでは~(・ω・)ノシ
コメント