Struktur Project Laravel
Bedah folder dan file penting Laravel 11: app, routes, config, database, sampai bootstrap/app.php yang baru.
Peta folder Laravel 11
Setelah instalasi, buka folder project. Ini folder yang paling sering kamu sentuh:
blogku/
├── app/ # Kode aplikasimu: Model, Controller, Provider
│ ├── Http/Controllers/ # Controller
│ └── Models/ # Model Eloquent
├── bootstrap/
│ └── app.php # Konfigurasi aplikasi (baru di Laravel 11)
├── config/ # File konfigurasi (database, mail, dll)
├── database/
│ ├── migrations/ # Version control skema database
│ ├── seeders/ # Data awal/dummy
│ └── factories/ # Template data dummy
├── routes/
│ ├── web.php # Route untuk halaman web (dengan session)
│ ├── api.php # Route untuk API (stateless)
│ └── console.php # Penjadwalan artisan command
├── resources/
│ └── views/ # File Blade (template HTML)
├── .env # Konfigurasi environment (jangan di-commit)
└── artisan # CLI Laravel
bootstrap/app.php: pusat konfigurasi baru
Di Laravel 11, file app/Http/Kernel.php dihapus. Middleware, exception handling, dan routing sekarang dikonfigurasi di bootstrap/app.php:
// bootstrap/app.php
use Illuminate\Foundation\Application;
use Illuminate\Foundation\Configuration\Exceptions;
use Illuminate\Foundation\Configuration\Middleware;
return Application::configure(basePath: dirname(__DIR__))
->withRouting(
web: __DIR__.'/../routes/web.php',
api: __DIR__.'/../routes/api.php',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware) {
//
})
->withExceptions(function (Exceptions $exceptions) {
//
})->create();Kamu jarang mengedit file ini di awal, tapi penting tahu lokasinya karena middleware kustom dan penjadwalan didaftarkan di sini.
Folder yang auto-generated
Folder storage/ menampung file upload, cache view, dan log. Folder vendor/ berisi semua dependency Composer, jangan pernah diedit manual dan jangan di-commit (sudah di .gitignore).
Catatan teknis: Konvensi penamaan Laravel itu convention over configuration. Model
Postotomatis mengarah ke tabelposts, controller diapp/Http/Controllers, dan viewposts.indexotomatis memetakan keresources/views/posts/index.blade.php. Ikuti konvensi ini dan kamu hampir tidak perlu konfigurasi manual.