Laravel install করার পর নিচের মতো একটি structure তৈরি হয়:
laravel-project/
│
├── app/
├── bootstrap/
├── config/
├── database/
├── lang/
├── public/
├── resources/
├── routes/
├── storage/
├── tests/
├── vendor/
├── .env
├── artisan
└── composer.json
এবার আমরা প্রতিটি ফোল্ডার ও ফাইলের কাজ সুন্দরভাবে বুঝে নেই।
📁 1. app/ — Application Logic
এখানে Laravel এর মেইন কোড থাকে। এটি আবার অনেকগুলো সাবফোল্ডারে ভাগ করা থাকে।
✅ সবচেয়ে গুরুত্বপূর্ণ অংশ:
| ফোল্ডার | কাজ |
|---|---|
Http/Controllers/ | সকল Controller এখানে থাকে |
Models/ | Eloquent Model এখানে থাকে (যেমন: Product, User) |
Http/Middleware/ | Route গুলোকে ফিল্টার করে |
Providers/ | App bootstrapping / সার্ভিস provider |
📁 2. bootstrap/ — Start-up Configuration
Laravel শুরু হওয়ার সময় যেই সেটিংস লোড হয়, তা এখানে থাকে।
app.php→ Laravel এর শুরু করার কোডcache/→ performance বাড়াতে compiled file রাখা হয়
📁 3. config/ — Application Configuration
এই ফোল্ডারে Laravel এর সব সেটিংস থাকে যেমন:
| ফাইল | কাজ |
|---|---|
app.php | App name, timezone, locale ইত্যাদি |
database.php | DB কানেকশন সেটিংস |
mail.php | ইমেইল সার্ভার কনফিগ |
queue.php | Queue সার্ভিস |
filesystems.php | ফাইল আপলোড সংক্রান্ত |
✳️ তুমি চাইলে .env থেকে এই ফাইলগুলো কনফিগার করতে পারো।
📁 4. database/ — Migration, Seeder ও Factory
| ফোল্ডার | কাজ |
|---|---|
migrations/ | টেবিল তৈরি বা পরিবর্তনের জন্য |
seeders/ | ডেমো ডেটা ইনসার্ট করার জন্য |
factories/ | টেস্ট ডেটা জেনারেট করতে |
php artisan migrate
php artisan db:seed
📁 5. lang/ — ভাষার ফাইল
এখানে localization ফাইল থাকে। যেমন:
en.jsonbn.json→ বাংলায় message লিখলে এখানেই রাখবে।
📁 6. public/ — Public Accessable Files
এটাই Laravel এর মূল entry point (like index.php)।
এখানে থাকে:
index.php- CSS, JS, Image
- Upload file path:
/public/storage
🔐 .env > APP_URL অনুযায়ী এই ফোল্ডার পয়েন্ট করে।
📁 7. resources/ — Frontend Files
Laravel-এর Blade views, CSS, JS সবকিছু এখানে থাকে।
| ফোল্ডার | কাজ |
|---|---|
views/ | Blade Template ফাইল (HTML এর মতো) |
css/ | Tailwind CSS ফাইল |
js/ | JS, Vue, Inertia |
lang/ | Blade-এর ভাষার জন্য |
📁 8. routes/ — Routing System
Laravel-এর route গুলো এখানেই define হয়।
| ফাইল | কাজ |
|---|---|
web.php | Web routes (Blade, form) |
api.php | API routes (Token/Auth) |
console.php | Custom artisan command |
channels.php | Real-time communication |
➡️ Example: routes/web.php:
Route::get('/', fn() => view('welcome'));
📁 9. storage/ — Logs, Files, Cache
Laravel-generated ফাইল, লোগ, ইমেইল preview ইত্যাদি রাখার জায়গা।
| ফোল্ডার | কাজ |
|---|---|
logs/ | Error log |
framework/ | Views cache |
app/public/ | Uploaded files (linked to public/storage) |
📁 10. tests/ — Unit ও Feature Testing
Laravel test framework দিয়ে automatic test run করার জন্য।
Feature/→ Controller, routes testUnit/→ Model/business logic test
Run test:
php artisan test
📁 11. vendor/ — Composer Packages
সব Composer dependency এখানে থাকে। এই ফোল্ডার গিটে পুশ করা যাবে না।
🗂️ রুট লেভেলের কিছু গুরুত্বপূর্ণ ফাইল
| ফাইল | কাজ |
|---|---|
.env | App config (DB, Mail, Debug ইত্যাদি) |
artisan | Laravel CLI কমান্ড |
composer.json | Composer dependency ও স্ক্রিপ্ট |
package.json | Node.js dependency |
vite.config.js | Vite এর কনফিগারেশন (JS, CSS build) |
✅ সারাংশ: কোন ফোল্ডার কী কাজ করে?
| ফোল্ডার | দায়িত্ব |
|---|---|
app/ | Controller, Model, Logic |
routes/ | Route define |
resources/views | Blade টেমপ্লেট |
database/migrations | Table structure & changes |
public/ | Website access point |
config/ | App settings |
storage/ | Log, cache, uploads |