Laravelにmodelsディレクトリがない理由
「モデル」という言葉は余りにも曖昧になってしまい、意味はありません。もっと限定された語彙を使用し開発を行えば、明確に定義された責任を持つ、より小さくてきれいなクラスへ、アプリケーションを簡単に分割できるでしょう
意味を解釈する
Modelというのはアプリケーションの心臓だと認識している。
しかしModelという言葉は開発者によって意味が異なってきている。単純にリレーショナルデータベースに関連するクラスを「Model」という人もいれば、解決するべき問題領域の事を指して「Model」と認識する人もいて、我々にとってのModelという言葉は共通認識をはないです。
アーキテクチャやフレームワークのコンテキスト(背景)によってModelの意味が変わってくる為、Modelという言葉はあまりに曖昧すぎる概念となってしまっている。
したがって、より限定された語彙を使用し開発したければ、namspaceを切るとかディレクトリを作るとかで、各自自由に作成して良い。
例)app/Models/Book.php
code:php
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
//
}
昔はmodelsディレクトリがあった
Laravel4まではmodelsディレクトリがあった。
Laravel4は小規模なアプリケーション開発向けでカスタマイズをしてより大きなアプリケーション開発にも対応できるようにしていた。
しかし、Laravel5からは中規模のアプリをサポートし少しのカスタマイズで小規模または大規模のアプリをサポートできるようにフォルダ構造を変えている。
The Laravel 4 folder default structure supports small apps from the start and with a little bit of customization, it can support bigger apps. The new folder structure in Laravel 5 supports medium apps and with a little bit of customization, it can support either smaller or bigger apps. It's different for every project.
参考情報