コントローラを作ってみる

LaravelはMVCパターンを提供しています。
MVCパターンは、データを表すモデル(Model)・表示を制御するビュー(View)・ビジネスロジックを記述するコントローラ(Controller)の3要素にプログラムを分離する手法です。

今回は、プログラムの中心となるコントローラを作ってみます。
新規のコントローラはartisanコマンドで生成します。
ターミナルから次のコマンドを実行して、コントローラを生成してみます。

php artisan make:controller SampleController

Controller created successfully.」がターミナルに出力されれば成功です。
app/Http/Controllersフォルダの中にSampleController.phpが作られました。このファイルがコントローラの本体となります。
SampleController.phpの中を覗いてみましょう。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    //
}

中身が空っぽのクラス定義が書かれています。
これがコントローラのスケルトン(骨組み)です。ここに任意のメソッドやプロパティを追記していきます。
適当なロジックを書いてみましょう。

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

class SampleController extends Controller
{
    public function calc() {
        $numbers = [1,2,4];
        $sum = array_sum($numbers);
        return $sum;
    }
}

単純な足し算の結果を返すメソッドを作りました。このメソッドの戻り値は7になるはずですね。
次に、ルーティング機能でこのメソッドをパスに割り当てます。
ルーティングはrouters/web.phpに追記します。

Route::get('/calc', 'SampleController@calc');

getメソッドの第2引数は、
‘コントローラクラス名@メソッド名’
の書式で文字列にします。

これで、

http://127.0.0.1:8000/calc

にアクセスすると、SampleControllerのcalcメソッドを実行するようにルーティングされました。
ブラウザでページにアクセスしてみると、「7」とだけ表示されたはずです。
ルーティングによってcalcメソッドが実行されて、戻り値の7が出力されたということです。

これで、任意のパスで任意のコントローラメソッドを呼び出せるようになりました。
httpリクエストからレスポンスまでの処理の流れは次のようになっています。

処理の流れ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です