人生の恥は書き捨て

プログラムとかいろいろ

【Laravel入門】ルーティング

はじめに

前回Laravelのインストールをやりました。
詳細はこちら→【Laravel入門】 インストールから起動まで - 人生の恥は書き捨て

つい先日Laravelの日本語版サイトもできたということで、
なかなか盛り上がってきているようです。
Laravel - ウェブ職人のためのPHPフレームワーク

今回はLaravelのルーティングについて見て行きたいと思います。

routes.phpでのルーティング

Laravelでは、基本的にリクエストとレスポンスの対応をroutes.phpに書いていきます。

文字列を返す

Route::get('/', function()
{
	return "Hello Laravel!"
});

この記述でルートにgetリクエストが来たときに、"Hello Laravel""という文字列を表示します。
ここではPHP5.3以降からの無名関数が使われています。function(){~}の部分ですね。
リクエストに対して文字列を返す無名関数を返しています。

Route::get('/', function()
{
	return "Hello Laravel!"
});

Viewを返す

リクエストに対してViewを返します。
これもViewを返す記述をした無名関数を返しています。

Route::get('/', function()
{
	return View::make('hello');
});

app/views/hello.php が表示されます。

関数を返す

リクエストに対して関数を指定して返します。

Route::get('/', 'HomeController@sayHello');

app/controllers/HomeController.phpのsayHelloメソッドが実行されます。

<?php

class HomeController extends BaseController {
    public function sayHello(){
        return View::make('hello');
    }

}

という風にHomeController.phpに記述しておけば、【Viewを返す】と同様になります。

更に詳しいルーティングについてはここに載ってます。
ルーティング

Controllerでのルーティング

Laravelでは基本的にはroutes.phpでルーティングを設定しますが、
Restfulコントローラーというのを使えば、Controller内でもルートごとのロジックを記述することができます。

routes.php

Route::controller('/', 'RestfulController');

と記述して

app/controllers/RestfulController.php

<?php
class RestfulController extends BaseController{
    public function getIndex(){
        return "get";
    }

    public function postIndex(){
        return "post";
    }

    public function getYo(){
        return "Yo";
    }
}

と記述すれば、
/にgetリクエストをした時は、get
/にpostリクエストをした時は、post
/yoにgetリクエストした時は、yo
それぞれの文字列を表示できます。
さらに詳しくはここに載ってます。
コントローラー