سئوالی که در انجمنها و کانالهای مختلف برنامه نویسی در شبکه های اجتماعی درباره پروژه های فریمورک لاراول پرسیده می شود، این است که ما به فولدر app/Models احتیاج داریم یا نه؟
اگر به خاطر داشته باشید در لاراول 4 ما یک ساختار واضح و مشخص داشتیم:
app:
کار کردن با این ساختار بسیار آسان بود و اعمال زیادی با منطق مدل انجام می شد.
در لاراول 5.0 دیگر اثری از پوشه مدل نبود و تغییرات دیگری مانند فولدرها app/Http و resources/views را شاهد بودیم و از این به بعد مدلها در پوشه app مانند app/User قرار می گرفتند.
و در انجمن های مختلف این سئوال را داشتیم چرا دایرکتوری model در لاراول 5 وجود ندارد.

دلیل اصلی این کار پشتیبانی از معماری نرم افزارهای بزرگ است. شما فرض کنید همه چیز در مسیر app/Http بود(مسیرها، منابع و ...). و فرض کنید بیشتر از 20 مدل در پروژه داشته باشیم، این معماری برای پروژه های بزرگ کارایی نداشت.
البته خیلی از افراد از تیلور حمایت کردند و راه کاری برای ساختن app/Models دادند. شما فولدر app/Models خود را ایجاد می کنید و از namespace زیر استفاده می کنید:
namespace App\Models;
همچنین شما می توانید مدل هایی را با دستورات artisan به این ترتیب تولید کنید:
php artisan make:model Models/Book
و نتیجه در فولدر app/Models/Book.php:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class Book extends Model
{
//
}