بی آکادمی
آموزش HTML
آموزش CSS
فلکس باکس
جاوااسکریپت
آموزش SQL
آموزش MySQL
آموزش PHP
آموزش لاراول
دانلود و نصب لینوکس
داکر دسکتاپ
VS Code
گیت و گیت هاب
آموزش پایتون
هوش مصنوعی
TypeScript
فروشگاه اینترنتی
اپلیکیشن موبایل
آموزش اکسل

آموزش کامل معماری 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

📌 بهترین روش‌های MVC در لاراول

  • کنترلرهای Lean: منطق کسب‌وکار را در مدل‌ها قرار دهید
  • استفاده از Repository: برای جداسازی بیشتر لایه داده
  • اعتبارسنجی در Request: از Form Request استفاده کنید
  • کامپوننت‌های View: از Blade Components برای بخش‌های تکراری استفاده کنید

📌 تمرین عملی

سیستم مدیریت کاربران را با MVC پیاده‌سازی کنید:

  1. مدل User را ایجاد کنید (با فیلدهای name, email, password)
  2. کنترلر UserController با متدهای index, create, store, show, edit, update, destroy بسازید
  3. Viewهای مربوطه را ایجاد کنید
  4. Routeهای resource را تعریف کنید

📌 قدم بعدی

در درس بعدی با الگوی Repository در لاراول آشنا خواهیم شد!