Laravel4、基礎の基礎:6.コントローラの基礎
タグ: Laravel4
Laravelの特徴の一つは、routes.phpだけでルーティングと実行されるコードをクロージャーで指定できることです。
この方法はお気軽で、今回のような学習目的や、小さなアプリケーションでは便利ですが、アプリが大きくなるにつれ、この方法だけでは管理が難しくなってきます。
通常、フレームワークでは、ルーティングにより実行されるコードを別のクラスに用意し、それを利用します。「コントローラー」と呼ばれます。「コントロール(制御)する人・物」という意味です。
Laravelでも当然、この標準的な方法を取ることができます。こちらの方法も試してみましょう。
まず、コントローラーです。コントローラーはapp/controllers
下に設置します。PageController.php
を作成し、以下のように更新してください。
<?php class PageController extends BaseController { public function index() { return "ページ一覧"; } public function showPage($page) { return $page.'ページ目が指定されました。'; } }
コントローラーのクラス名には通常Controllerをつけますが、これは必須ではありません。しかし、通常名前空間指定無しの名前は、ORMというデータベース操作に関係するクラスに付けるため、名前の衝突を起こさないためにControllerを付けましょう。いわば暗黙の規約です。
ファイル名とクラス名は、大文字小文字を含め、一緒にします。必ずBaseControllerを拡張します。BaseControllerは、全コントローラーに必要な設定を行うために存在しています。もちろん自由に変更できます。
これに対する、ルート定義を見てみましょう。routes.phpです。
Route::get('page', 'PageController@index'); Route::get('page/{page}', 'PageController@showPage');
@で区切り、コントローラー名とメソッド名を指定しています。
これが基本です。簡単ですね。