Instalasi & Struktur Proyek
Membuat proyek Laravel 13, menjalankan server, memahami struktur folder, dan bootstrap/app.php.
Persyaratan
- PHP 8.3+ dengan ekstensi umum (mbstring, openssl, pdo, tokenizer, xml, ctype, json, fileinfo).
- Composer (composer.org).
- Node.js + npm untuk aset front end (Vite).
- Database: SQLite (bawaan, paling mudah), MySQL/MariaDB, atau PostgreSQL.
Cara tercepat menyiapkan semuanya: Laravel Herd (macOS/Windows, sekali instal) atau Laravel Sail (Docker).
Membuat proyek
# Dengan installer Laravel (disarankan)
composer global require laravel/installer
laravel new toko-saya
# atau lewat Composer
composer create-project laravel/laravel toko-saya
laravel new menawarkan starter kit (React, Svelte, Vue, atau Livewire — semuanya sudah lengkap dengan login dan registrasi) atau proyek kosong. Pemula boleh memilih tanpa starter kit dulu agar memahami dasarnya.
Menjalankan aplikasi
cd toko-saya
php artisan serve # http://127.0.0.1:8000
# atau, menjalankan server + antrian + log + Vite sekaligus:
composer run dev
Struktur folder
| Folder | Isi |
|---|---|
app/ | Kode aplikasimu: Http/Controllers, Models, Providers, dst. |
bootstrap/ | app.php (menyalakan framework) dan cache |
config/ | Berkas konfigurasi (database, mail, cache, ...) |
database/ | migrations, factories, seeders, dan berkas SQLite |
public/ | Satu-satunya folder yang boleh diakses web: index.php, aset publik |
resources/ | views (Blade), css, js |
routes/ | web.php, console.php (opsional: api.php) |
storage/ | Log, cache, sesi, berkas unggahan |
tests/ | Tes otomatis (Pest/PHPUnit) |
vendor/ | Paket Composer (jangan di-commit) |
Folder lain (Jobs, Events, Mail, Policies, ...) baru muncul saat kamu membuatnya dengan php artisan make:....
bootstrap/app.php: titik awal konfigurasi
Sejak Laravel 11, konfigurasi inti aplikasi dipusatkan di sini dengan gaya yang ringkas dan fluent:
<?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',
commands: __DIR__.'/../routes/console.php',
health: '/up',
)
->withMiddleware(function (Middleware $middleware): void {
// daftarkan / ubah middleware
})
->withExceptions(function (Exceptions $exceptions): void {
// atur penanganan exception
})->create();
withRouting— berkas route mana yang dimuat.health: '/up'membuat endpoint pemeriksaan kesehatan otomatis.withMiddleware— middleware global/grup/alias.withExceptions— cara melaporkan & menampilkan error.
Berkas .env
.env menyimpan konfigurasi yang berbeda per lingkungan: APP_NAME, APP_ENV, APP_KEY, APP_DEBUG, DB_*, MAIL_*. Jangan pernah di-commit (sudah masuk .gitignore). Dari kode, baca konfigurasi dengan config('app.name'), bukan env() langsung (kecuali di berkas config/).
Artisan: asisten command-line
php artisan list # semua perintah
php artisan route:list # semua route
php artisan make:model Produk -mfs # model + migration + factory + seeder
php artisan migrate # jalankan migration
php artisan tinker # REPL untuk bereksperimen dengan kode aplikasi