Tutorial Laravel #3: Struktur Folder Laravel
1. Kenapa Perlu Paham Struktur Folder?
Saat pertama kali buka project Laravel, mungkin kamu merasa overwhelmed melihat banyaknya folder dan file. Tenang - kamu tidak perlu paham semua sekaligus. Fokus dulu pada folder yang paling sering dipakai sehari-hari.
2. Folder app/ - Jantung Aplikasi
Folder app/ berisi hampir semua logika aplikasi kamu:
app/Http/Controllers/- semua controller ada di siniapp/Http/Middleware/- middleware untuk filter requestapp/Http/Requests/- Form Request untuk validasi (dibuat manual atau via artisan)app/Models/- semua Eloquent model ada di siniapp/Providers/- service provider untuk binding dan bootstrap
3. Folder routes/ - Semua URL Terdaftar di Sini
routes/
├── web.php - route untuk aplikasi web (pakai session, cookie, CSRF)
├── api.php - route untuk REST API (stateless, pakai token)
└── console.php - route untuk artisan command custom
Untuk project web biasa, kamu paling sering kerja di routes/web.php.
4. Folder resources/ - View dan Asset
resources/
├── views/ - semua file Blade template (.blade.php)
├── css/ - file CSS sumber (sebelum dikompilasi)
├── js/ - file JavaScript sumber
└── lang/ - file terjemahan/lokalisasi
5. Folder database/ - Semua yang Berkaitan dengan Database
database/
├── migrations/ - file migration untuk membuat/mengubah struktur tabel
├── seeders/ - file seeder untuk mengisi data awal
└── factories/ - factory untuk generate data dummy (testing)
6. Folder public/ - Satu-satunya Folder yang Terekspos ke Web
Folder public/ adalah document root server - satu-satunya folder yang bisa diakses langsung oleh browser. Berisi:
index.php- entry point semua request Laravel- Asset yang sudah dikompilasi (CSS, JS hasil build)
- File yang diupload user (biasanya via symlink ke storage)
Penting: Semua file PHP aplikasi berada di luar public/ - ini yang membuat Laravel aman karena kode tidak bisa diakses langsung dari browser.
7. Folder storage/ - File Tersimpan di Sini
storage/
├── app/ - file upload dan file aplikasi lainnya
├── framework/ - cache, session, compiled views (jangan diubah manual)
└── logs/ - log file aplikasi (laravel.log)
8. File Penting di Root
.env- konfigurasi environment (database, cache, mail, dsb).env.example- template .env yang aman untuk di-commit ke Gitartisan- entry point Artisan CLIcomposer.json- daftar dependency PHP projectpackage.json- daftar dependency Node.js untuk assetvite.config.js- konfigurasi Vite untuk kompilasi asset
9. Folder config/ - Konfigurasi Aplikasi
Berisi berbagai file konfigurasi seperti database.php, cache.php, mail.php, filesystems.php, dsb. Nilai defaultnya sering mengambil dari file .env.
// Contoh mengakses config
config('app.name'); // "Laravel"
config('database.default'); // "mysql"
10. Ringkasan
app/- logika utama: Controllers, Models, Middlewareroutes/- semua definisi URL/routeresources/views/- semua template Bladedatabase/- migrations, seeders, factoriespublic/- satu-satunya folder yang diakses browser langsung.env- konfigurasi environment yang sensitif
Tutorial berikutnya membahas routing dasar di Laravel.
.jpg)
