Pernah nggak, kamu baru install Laravel, buka folder proyeknya, terus langsung pusing melihat puluhan folder dan file yang bertebaran? "Ini app, bootstrap, config, database, public… gue harus mulai dari mana?!" — kalau kamu pernah ngerasain itu, artikel ini tepat banget untuk kamu.
Dalam perjalanan mengenal Laravel framework, salah satu rintangan pertama yang bikin pemula nyerah bukan soal coding-nya — tapi soal orientasi. Kamu nggak tahu "file ini untuk apa", "kalau mau buat halaman, gue taruh kode di mana", atau "kenapa ada dua folder yang namanya mirip?". Wajar banget, kok!
Di artikel ketiga dari Seri Belajar Laravel: 50 Artikel Lengkap ini, kita akan membedah struktur folder Laravel satu per satu menggunakan analogi yang mudah dipahami — bahkan kalau kamu belum pernah pakai framework sebelumnya. Siap? Mari kita mulai! 🚀
Struktur Folder Laravel adalah "peta kota" dari aplikasimu.
Setiap folder punya peran spesifik. Laravel menerapkan prinsip Separation of Concerns — artinya setiap jenis kode dipisahkan ke tempatnya masing-masing agar proyek tetap rapi, terstruktur, dan mudah dikembangkan bersama tim.
🗺️ Analogi: Laravel Itu Seperti Sebuah Restoran
Sebelum kita masuk ke daftar folder, bayangkan dulu Laravel sebagai sebuah restoran. Sebuah restoran yang berjalan lancar pasti punya ruangan-ruangan dengan fungsi berbeda:
- 🍽️ Ruang makan (public/) — area yang bisa diakses tamu/pengunjung
- 👨🍳 Dapur (app/) — tempat "logika bisnis" dimasak oleh para chef (programmer)
- 📋 Buku resep (routes/) — daftar pesanan apa yang bisa dilayani
- 🗄️ Gudang bahan (database/) — tempat menyimpan data dan resep migrasi
- 🎨 Dekorasi ruangan (resources/views/) — tampilan yang dilihat pelanggan
Kalau kamu paham analogi restoran ini, memahami struktur folder Laravel akan jauh lebih mudah. Setiap folder punya "tanggung jawab" yang jelas — dan kamu nggak perlu menghafalnya semua sekarang. Cukup kenali dulu yang paling sering dipakai.
📂 Mengenal Laravel Framework: Breakdown Folder Satu Per Satu
Sekarang mari kita lihat tampilan nyata struktur folder Laravel setelah kamu install. Beginilah kira-kira yang kamu lihat di terminal atau file explorer:
my-laravel-app/ ├── app/ │ ├── Console/ │ ├── Exceptions/ │ ├── Http/ │ │ ├── Controllers/ │ │ └── Middleware/ │ ├── Models/ │ └── Providers/ ├── bootstrap/ ├── config/ ├── database/ │ ├── factories/ │ ├── migrations/ │ └── seeders/ ├── public/ ├── resources/ │ ├── views/ │ ├── css/ │ └── js/ ├── routes/ │ ├── web.php │ └── api.php ├── storage/ ├── tests/ ├── vendor/ ├── .env └── composer.json
| 📁 Folder / File | 🎯 Fungsi Utama | ⚡ Seberapa Sering Dipakai |
|---|---|---|
app/ |
Inti aplikasi: Controllers, Models, Middleware | 🔥 Sangat Sering |
routes/ |
Mendefinisikan URL/endpoint aplikasi | 🔥 Sangat Sering |
resources/views/ |
Template HTML (Blade) untuk tampilan | 🔥 Sangat Sering |
database/ |
Migrasi, seeder, dan factory database | ⚡ Sering |
config/ |
Pengaturan koneksi DB, mail, cache, dll. | ⚡ Sering |
public/ |
Entry point aplikasi + aset publik (CSS/JS/gambar) | 📌 Jarang Diedit |
.env |
Environment variable: kredensial DB, API key | 🔥 Sangat Sering |
vendor/ |
Library pihak ketiga (dikelola Composer) | 🚫 Jangan Diedit |
vendor/ adalah milik Composer, jangan pernah mengedit file di dalamnya secara manual. Perubahan apapun akan hilang saat kamu menjalankan composer update.🔍 Mengenal Lebih Dalam: 5 Folder Terpenting di Laravel
Sekarang, kita zoom in ke 5 folder yang paling sering kamu sentuh saat membangun aplikasi Laravel. Pelajari ini baik-baik!
Folder app/ — Jantung Aplikasimu
Di sinilah semua logika bisnis aplikasimu tinggal. Dua subfolder yang paling penting:
- app/Http/Controllers/ — Kelas PHP yang menangani request dari browser dan menentukan respons apa yang dikirim balik.
- app/Models/ — Representasi tabel database. Satu model = satu tabel (misalnya
User.phpuntuk tabelusers).
Folder routes/ — Peta Jalan Aplikasi
Di sini kamu mendaftarkan semua URL yang bisa diakses. Contoh paling sederhana:
// routes/web.php Route::get('/tentang', function () { return view('tentang'); });
↑ Kode ini berarti: "Kalau user buka /tentang, tampilkan view bernama 'tentang'"
Folder resources/views/ — Wajah Aplikasimu
Di sini semua file template HTML (disebut Blade) disimpan. Blade adalah template engine Laravel yang sangat powerful — kamu bisa menulis PHP langsung di dalam HTML dengan sintaks yang bersih dan mudah dibaca. File Blade berekstensi .blade.php.
Folder database/ — Gudang Data
Berisi tiga sub-folder penting: migrations/ (script untuk membuat/mengubah tabel), seeders/ (mengisi data awal), dan factories/ (membuat data dummy untuk testing). Migrasi ibarat "version control untuk database" kamu.
File .env — Rahasia Tersimpan
File konfigurasi environment yang berisi informasi sensitif seperti nama database, password, API key, dan lainnya. File ini tidak di-commit ke Git dan harus dibuat ulang di setiap server yang berbeda.
# .env — contoh isi file APP_NAME=LaravelApp APP_ENV=local DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_DATABASE=nama_database_kamu DB_USERNAME=root DB_PASSWORD=password_kamu
🧠 Cara Cepat Hafal Struktur Laravel dengan Mengenal Framework-nya
Daripada menghafal semua folder sekaligus (yang justru bikin pusing), coba teknik berikut ini. Kamu akan ingat lebih lama!
💡 Hafal alur ini, kamu sudah hafal 80% dari cara kerja Laravel!
🛠️ Praktikkan Sekarang: Eksplorasi Folder Laravel di Terminal
Teori tanpa praktik = ilmu yang cepat lupa! Setelah kamu install Laravel (lihat Artikel 2), coba jalankan perintah berikut untuk menjelajahi struktur foldernya secara langsung:
# Masuk ke folder proyek Laravel cd nama-proyek-laravel # Lihat semua folder dan file (Linux/Mac) ls -la # Lihat isi folder app/ ls app/ # Lihat isi folder app/Http/Controllers/ ls app/Http/Controllers/ # Buka file routes/web.php untuk melihat routing cat routes/web.php
No comments:
Post a Comment