1. Home
  2. Laravel
  3. Basic
  4. 1.1 Laravel Project Structure বুঝা (কোথায় কোন ফাইল থাকে

1.1 Laravel Project Structure বুঝা (কোথায় কোন ফাইল থাকে

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.phpApp name, timezone, locale ইত্যাদি
database.phpDB কানেকশন সেটিংস
mail.phpইমেইল সার্ভার কনফিগ
queue.phpQueue সার্ভিস
filesystems.phpফাইল আপলোড সংক্রান্ত

✳️ তুমি চাইলে .env থেকে এই ফাইলগুলো কনফিগার করতে পারো।


📁 4. database/Migration, Seeder ও Factory

ফোল্ডারকাজ
migrations/টেবিল তৈরি বা পরিবর্তনের জন্য
seeders/ডেমো ডেটা ইনসার্ট করার জন্য
factories/টেস্ট ডেটা জেনারেট করতে
php artisan migrate
php artisan db:seed

📁 5. lang/ভাষার ফাইল

এখানে localization ফাইল থাকে। যেমন:

  • en.json
  • bn.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.phpWeb routes (Blade, form)
api.phpAPI routes (Token/Auth)
console.phpCustom artisan command
channels.phpReal-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 test
  • Unit/ → Model/business logic test

Run test:

php artisan test

📁 11. vendor/Composer Packages

সব Composer dependency এখানে থাকে। এই ফোল্ডার গিটে পুশ করা যাবে না।


🗂️ রুট লেভেলের কিছু গুরুত্বপূর্ণ ফাইল

ফাইলকাজ
.envApp config (DB, Mail, Debug ইত্যাদি)
artisanLaravel CLI কমান্ড
composer.jsonComposer dependency ও স্ক্রিপ্ট
package.jsonNode.js dependency
vite.config.jsVite এর কনফিগারেশন (JS, CSS build)

✅ সারাংশ: কোন ফোল্ডার কী কাজ করে?

ফোল্ডারদায়িত্ব
app/Controller, Model, Logic
routes/Route define
resources/viewsBlade টেমপ্লেট
database/migrationsTable structure & changes
public/Website access point
config/App settings
storage/Log, cache, uploads

How can we help?