laravelstrukturfundamentalPemula3 mnt baca

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:

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 Post otomatis mengarah ke tabel posts, controller di app/Http/Controllers, dan view posts.index otomatis memetakan ke resources/views/posts/index.blade.php. Ikuti konvensi ini dan kamu hampir tidak perlu konfigurasi manual.