آموزش کامل معماری MVC در لاراول
🎯 اهداف یادگیری
- درک مفاهیم پایه معماری MVC
- آشنایی با اجزای اصلی MVC در لاراول
- یادگیری ارتباط بین Model, View, Controller
- پیادهسازی یک پروژه ساده با MVC
📌 معماری MVC چیست؟
MVC یک الگوی طراحی نرمافزار است که برنامه را به سه بخش اصلی تقسیم میکند:
text
Model (مدل) - مسئولیت کار با دادهها و منطق کسبوکارView (نمایش) - مسئولیت نمایش اطلاعات به کاربرController (کنترلر) - واسط بین Model و View
مزایای استفاده از MVC:
- جداسازی منطق: جداسازی منطق کسبوکار از لایه نمایش
- قابلیت نگهداری: تغییر در یک بخش بر بخشهای دیگر تأثیر نمیگذارد
- توسعه پذیری: امکان توسعه همزمان توسط چند توسعهدهنده
📌 ساختار MVC در لاراول
bash
app/├── Http/Controllers/ # کنترلرها├── Models/ # مدلها└── resources/views/ # فایلهای نمایش
اجزای اصلی در لاراول:
- Routes: مسیرهای برنامه که در فایل routes/web.php تعریف میشوند
- Controllers: دریافت درخواستها و بازگرداندن پاسخ مناسب
- Models: ارتباط با دیتابیس و انجام عملیات CRUD
- Views: فایلهای Blade که خروجی HTML تولید میکنند
📌 ایجاد یک پروژه ساده با MVC
بیایید یک سیستم مدیریت مقالات ساده ایجاد کنیم:
1. ایجاد مدل و میگریشن
bash
php artisan make:model Article -m
فایل میگریشن را ویرایش کنید:
php
public function up(){ Schema::create('articles', function (Blueprint $table) { $table->id(); $table->string('title'); $table->text('content'); $table->timestamps(); });}
2. ایجاد کنترلر
bash
php artisan make:controller ArticleController --resource
متد index کنترلر:
php
public function index(){ $articles = Article::all(); return view('articles.index', compact('articles'));}
3. ایجاد View
فایل resources/views/articles/index.blade.php:
html
<!-- لیست مقالات -->@extends('layouts.app')@section('content') <h1>مقالات</h1> @foreach($articles as $article) <div>{{ $article->title }}</div> @endforeach@endsection
4. تعریف Route
php
Route::resource('articles', 'ArticleController');
📌 ارتباط بین اجزای MVC
text
1. کاربر درخواستی به یک URL میفرستد2. Route درخواست را به Controller مناسب هدایت میکند3. Controller از Model برای دریافت/ذخیره داده استفاده میکند4. Controller دادهها را به View منتقل میکند5. View خروجی HTML را تولید و به کاربر نمایش میدهد
نمودار جریان داده:

📌 بهترین روشهای MVC در لاراول
- کنترلرهای Lean: منطق کسبوکار را در مدلها قرار دهید
- استفاده از Repository: برای جداسازی بیشتر لایه داده
- اعتبارسنجی در Request: از Form Request استفاده کنید
- کامپوننتهای View: از Blade Components برای بخشهای تکراری استفاده کنید
📌 تمرین عملی
سیستم مدیریت کاربران را با MVC پیادهسازی کنید:
- مدل User را ایجاد کنید (با فیلدهای name, email, password)
- کنترلر UserController با متدهای index, create, store, show, edit, update, destroy بسازید
- Viewهای مربوطه را ایجاد کنید
- Routeهای resource را تعریف کنید
📌 قدم بعدی
در درس بعدی با الگوی Repository در لاراول آشنا خواهیم شد!