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');

@で区切り、コントローラー名とメソッド名を指定しています。

これが基本です。簡単ですね。