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 sini
  • app/Http/Middleware/ - middleware untuk filter request
  • app/Http/Requests/ - Form Request untuk validasi (dibuat manual atau via artisan)
  • app/Models/ - semua Eloquent model ada di sini
  • app/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 Git
  • artisan - entry point Artisan CLI
  • composer.json - daftar dependency PHP project
  • package.json - daftar dependency Node.js untuk asset
  • vite.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, Middleware
  • routes/ - semua definisi URL/route
  • resources/views/ - semua template Blade
  • database/ - migrations, seeders, factories
  • public/ - satu-satunya folder yang diakses browser langsung
  • .env - konfigurasi environment yang sensitif

Tutorial berikutnya membahas routing dasar di Laravel.


ariq fadhil

Im Ariq Tech, a Top Rated Fullstack Developer with 5+ years of experience, delivering high-quality solutions across 50+ projects.