Kalau baru masuk ke dunia web development dengan PHP, biasanya yang bikin bingung bukan sintaks kodenya, melainkan pemahaman tentang struktur folder Laravel. Banyak folder, banyak file, dan sekilas kelihatan sangat kompleks.
Padahal kalau dipahami pelan-pelan, semua direktori di dalamnya punya peran yang jelas. Laravel itu rapi banget secara arsitektur karena dia mengikuti pola MVC (Model-View-Controller).
Di sini kita bakal kupas tuntas struktur folder Laravel dengan cara yang lebih masuk akal, bukan sekadar hafalan nama folder kosong.
Kenalan dengan Struktur Folder Laravel dan Konsep MVC
Bayangin sebuah project Laravel itu seperti sebuah sistem kerja tim di dalam restoran atau kantor:
- Ada yang ngurus data (Gudang/Bahan baku)
- Ada yang ngurus tampilan (Penyajian makanan/Pelayan)
- Ada yang jadi penghubung (Koki yang memasak dan mengatur semuanya)
Nah, itulah inti dari arsitektur MVC yang diterapkan pada struktur folder Laravel. Biar makin kebayang, mari kita bedah 9 folder utamanya satu per satu.
1. Folder app/ → Otaknya Aplikasi
Ini adalah pusat logika utama dari web yang lo bangun. Di dalam struktur folder Laravel, folder app/ memegang peranan paling krusial. Di dalamnya ada beberapa bagian penting:
app/Http/Controllers/Di sinilah semua request dari user diproses. Controller bertindak seperti “manajer”.Contoh alur: User membuka halaman web $\rightarrow$ masuk ke controller $\rightarrow$ controller mengambil data $\rightarrow$ lalu mengirimkannya ke bagian view.app/Models/Tempat kamu berinteraksi dengan database. Kalau kamu pernah pakai query SQL manual, di Laravel semuanya dibungkus jadi lebih rapi pakai Eloquent ORM. Misalnya untuk mengambil data buku, menyimpan data user baru, atau melakukan update informasi.app/Http/Middleware/Ini semacam “satpam” aplikasi. Fungsinya untuk mengecek apakah user sudah login, memblokir akses tertentu, atau memfilter setiap request yang masuk.
2. Folder resources/ → Tampilan (View)
Di sinilah tempat diletahkannya bagian visual yang langsung dilihat oleh user. Di dalam resources/views/, file didominasi oleh ekstensi .blade.php.
Blade adalah template engine bawaan Laravel yang memudahkan kamu menggabungkan kode HTML + logic PHP tanpa ribet. Contohnya cukup pakai sintaks sederhana seperti <h1>{{ $judul }}</h1>.
3. Folder routes/ → Jalur Navigasi
Kalau Laravel itu sebuah kota, maka folder routes/ adalah peta jalannya. File yang paling sering lo utak-atik adalah web.php. Di sini lo mendaftarkan URL web lo, contohnya:
PHP
Route::get('/buku', [BukuController::class, 'index']);
Artinya, ketika user membuka URL /buku, Laravel akan tahu harus memanggil controller mana.
4. Folder database/ → Urusan Database
Folder ini berisi semua yang berkaitan dengan struktur data. Ada folder migrations/ yang berfungsi sebagai blueprint database, jadi lo gak perlu bikin tabel manual di phpMyAdmin. Cukup ketik kode PHP dan jalankan lewat terminal. Ada juga seeders/ untuk mengisi data dummy atau data default di awal project.
5. Folder public/ → Pintu Masuk Browser
Ini adalah satu-satunya folder dalam struktur folder Laravel yang boleh diakses langsung oleh browser. Di dalamnya ada file index.php sebagai pintu masuk utama seluruh request user. Folder ini juga menjadi tempat terbaik untuk menaruh file aset seperti CSS, JavaScript, dan gambar.
6. Folder config/ → Pengaturan Sistem
Sesuai namanya, semua konfigurasi aplikasi ada di sini—mulai dari pengaturan koneksi database, mail server, session, hingga nama aplikasi lo. Sebagian besar file di sini mengambil data sensitif dari file .env.
7. Folder vendor/ → Library dari Composer
Folder ini berisi semua dependency dan package eksternal yang di-download melalui Composer. Peringatan penting: jangan pernah mengubah isi folder ini secara manual karena isinya di-generate otomatis.
8. Folder storage/ → Penyimpanan Internal
Digunakan oleh Laravel untuk menyimpan log error, cache aplikasi, hingga file-file hasil upload dari user (seperti foto profil atau dokumen) sebelum di-link-kan ke folder public.
9. Folder bootstrap/ → Proses Awal Laravel
Folder ini berisi file app.php yang berfungsi untuk melakukan bootstrapping atau menyalakan seluruh sistem framework Laravel pertama kali sebelum aplikasi melayani request.
Memahami Alur Kerja Framework Laravel
Setelah melihat anatomi struktur folder Laravel di atas, bagaimana cara kerja semuanya secara bersamaan? Kalau diringkas, alurnya berjalan seperti ini:
- User mengetik URL atau membuka website lo $\rightarrow$ Masuk ke
public/index.php. - Request diteruskan ke file navigasi di
routes/web.php. - Route meneruskan request tersebut ke Controller yang bertugas.
- Controller meminta data ke Model jika halaman tersebut butuh data dari database.
- Setelah data didapat, Controller mengirimkan data tersebut ke View (
.blade.php). - Halaman HTML selesai diracik dan ditampilkan kembali ke browser user.
Kalau lo sudah memahami alur bolak-balik ini, selamat! Lo sebenarnya sudah mengerti sekitar 70% cara kerja dasar framework Laravel.
Tips Biar Cepat Paham untuk Pemula
Agar tidak mengalami information overload, jangan langsung menghafal seluruh isi struktur folder Laravel sekaligus. Untuk dokumentasi instalasi dan panduan instalasi composer, lo bisa baca langsung di Official Website Laravel sebagai referensi luar.
Fokuskan belajar lo di awal pada segitiga emas ini: Routes -> Controller -> View. Setelah lancar membuat halaman statis, baru mulailah naik level dengan mempelajari Model -> Migration.
Penutup
Melihat banyaknya direktori saat pertama kali install memang bikin pusing, tapi struktur folder Laravel dibuat sedemikian rupa agar kode kita tetap rapi, mudah dikembangkan, dan aman saat bekerja di dalam tim. Begitu lo mulai terbiasa, semuanya akan terasa sangat masuk akal!

