MVC(Laravel)

LaravelにおいてもMVCの概念は存在する。

コントローラー

ビューに渡すための情報を整理するための要素。

メソッドの仮引数から、アクセス時のURLパラメーターや、
POSTメソッドのデータを受け取る事もできる。

以下のディレクトリに配置していく。

/app/Http/Controllers/

ファイルの命名規則は「home」という名称のページの場合は、
「HomeController.php」である。

ビュー

ページの見た目を担う要素である。

基本はHTMLの記述でよいが、テンプレートファイルでもあるため、
独自の記法によりデータ出力する事も可能である。

ファイルを直に表示する事も可能だが、コントローラーの情報を表示する事も可能である。
以下のディレクトリに配置していく。

/resources/views/

ファイルの命名規則は「home」という名称のページの場合は、
「Home.blade.php」である。

モデル

MVCの概念としては、ビジネスロジックを記述する場所である。
Laravelの初期ディレクトリ構成には、モデル用のディレクトリは存在しない

Laravelにおいては、モデルについては、あまり厳密な規則はないらしく、
単純に「Illuminate\Database\Eloquent\Model」の
「Model」クラスを継承したクラスであればよい。

altisanで作成した場合、「app」ディレクトリに直に作成される。
以下のコマンドが作成例である。

$php artisan make:model test

これで「app」の直下に「test」というモデルファイルが作成される。
その中身は以下のとおりである。

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class test extends Model
{
    //
}

単純に「Eloquent」の「Model」を継承しているだけのクラスが作成されるだけである。

「$php artisan make:model Models/test」のように、
スラッシュで区切れば、ディレクトリに内包したうえで作成できる。
つまりLaravelにおいてモデルの概念は、ほぼ自由であるため、
MVC本来の概念を尊重したうえで作成するならば、
とりあえずデータベースを利用できるビジネスロジックを書く場所
確保できればいいと思われる。