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

آموزش جامع ساختار دایرکتوری‌های لاراول


🎯 اهداف یادگیری

  • آشنایی با ساختار استاندارد پروژه‌های لاراول
  • درک وظیفه هر دایرکتوری و فایل اصلی
  • یادگیری مکان مناسب برای قراردادن کدهای سفارشی
  • آشنایی با best practices سازماندهی پروژه

📌 معرفی ساختار پروژه لاراول

پس از نصب لاراول، ساختار دایرکتوری‌های زیر ایجاد می‌شود:

bash
app/
bootstrap/
config/
database/
public/
resources/
routes/
storage/
tests/
vendor/

دایرکتوری‌های اصلی:

  • app: هسته اصلی برنامه شامل مدل‌ها، کنترلرها و...
  • config: تنظیمات کلی برنامه مانند دیتابیس، کش و...
  • resources: فایل‌های view، assets و زبان‌ها

📌 دایرکتوری app - قلب برنامه

این دایرکتوری شامل مهم‌ترین بخش‌های برنامه است:

bash
app/
├── Console/ # دستورات Artisan سفارشی
├── Exceptions/ # مدیریت خطاها
├── Http/ # کنترلرها، میدلورها و درخواست‌ها
├── Models/ # مدل‌های Eloquent
├── Providers/ # سرویس پراودرها
└── Traits/ # Traits مشترک

مهم‌ترین بخش‌های دایرکتوری app:

  • Http/Controllers: کنترلرهای برنامه که منطق کسب‌وکار را مدیریت می‌کنند
  • Models: مدل‌های Eloquent برای ارتباط با دیتابیس
  • Providers: سرویس پراودرها برای ثبت سرویس‌های برنامه

📌 دایرکتوری‌های مهم دیگر

هر یک از این دایرکتوری‌ها نقش خاصی در برنامه دارند:

bash
config/ # فایل‌های پیکربندی برنامه
database/ # migrations، seeders و factoryها
public/ # فایل‌های عمومی مانند index.php
resources/ # viewها، assets و فایل‌های زبان
routes/ # فایل‌های مسیریابی
storage/ # لاگ‌ها، فایل‌های کامپایل شده و آپلودها
tests/ # تست‌های واحد و ویژگی

توضیحات تکمیلی:

  • config: شامل فایل‌های تنظیمات مانند app.php، database.php و...
  • database: migrations برای ایجاد جداول، seeders برای داده‌های اولیه
  • resources/views: فایل‌های blade.php برای نمایش صفحات

📌 ساختار پیشرفته برای پروژه‌های بزرگ

برای پروژه‌های بزرگ می‌توان ساختار را به این صورت سازماندهی کرد:

bash
app/
├── Modules/ # ماژول‌های مستقل برنامه
│ ├── Blog/ # ماژول وبلاگ
│ └── Shop/ # ماژول فروشگاه
├── Core/ # کلاس‌های هسته مشترک
└── Services/ # سرویس‌های مشترک

Best Practices سازماندهی پروژه:

  • اصل تک‌وظیفه‌ای: هر کلاس/فایل فقط یک مسئولیت داشته باشد
  • ماژولارسازی: تقسیم کد به ماژول‌های مستقل و قابل استفاده مجدد
  • پوشه‌بندی بر اساس ویژگی: به جای نوع فایل (مثلا تمام فایل‌های مرتبط با کاربر در یک پوشه)

📌 فایل‌های مهم ریشه پروژه

فایل توضیحات
.env تنظیمات محیطی (دیتابیس، mail و...)
composer.json تعریف وابستگی‌های پروژه
artisan ابزار خط فرمان لاراول
webpack.mix.js پیکربندی کامپایل فایل‌های frontend

📌 تمرین عملی

پروژه لاراول جدیدی ایجاد کرده و ساختار آن را بررسی کنید:

bash
# ایجاد پروژه جدید
composer create-project laravel/laravel my-project
# مشاهده ساختار دایرکتوری‌ها
cd my-project
ls -la

راهنمای تمرین:

  1. پروژه جدید لاراول ایجاد کنید
  2. فایل .env را بررسی و تنظیمات دیتابیس را اصلاح کنید
  3. محتوای دایرکتوری app/ را بررسی کنید
  4. یک کنترلر جدید ایجاد کنید و مسیر آن را در routes/web.php تعریف کنید

📌 قدم بعدی

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