آموزش جامع ساختار دایرکتوریهای لاراول
🎯 اهداف یادگیری
- آشنایی با ساختار استاندارد پروژههای لاراول
- درک وظیفه هر دایرکتوری و فایل اصلی
- یادگیری مکان مناسب برای قراردادن کدهای سفارشی
- آشنایی با 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.phpresources/ # 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-projectls -la
راهنمای تمرین:
- پروژه جدید لاراول ایجاد کنید
- فایل .env را بررسی و تنظیمات دیتابیس را اصلاح کنید
- محتوای دایرکتوری app/ را بررسی کنید
- یک کنترلر جدید ایجاد کنید و مسیر آن را در routes/web.php تعریف کنید
📌 قدم بعدی
در درس بعدی با مسیریابی در لاراول آشنا خواهیم شد!