โ† Semua pembelajaran / Laravel Nol โ†’ Enterprise
Fase 0 ยท Fondasi PHP & Tooling

Memasang Laravel

Laravel 13 butuh PHP 8.3 ke atas. Pemasangannya cepat; yang perlu dipahami adalah apa yang sebenarnya terjadi setelah perintah itu selesai.

Sumber asli laravel.com Resmi Rangkuman ~6 menit baca

Intisari

  • Laravel 13 rilis 17 Maret 2026, mendukung PHP 8.3โ€“8.5, dengan perbaikan bug 18 bulan dan keamanan 2 tahun.
  • laravel new lalu composer run dev โ€” server, queue worker, dan Vite menyala bersama.
  • Default database-nya SQLite, berkas database/database.sqlite, migrasinya sudah dijalankan.
  • Aplikasi wajib dilayani dari folder public/, bukan dari root proyek โ€” ini soal keamanan, bukan selera.
  • APP_KEY dibuat otomatis saat instalasi; kehilangan kunci itu berarti kehilangan semua data terenkripsi.

Jalur tercepat

# PHP + Composer + installer sekaligus (macOS / Linux)
/bin/bash -c "$(curl -fsSL https://php.new/install/linux/8.5)"

# kalau PHP dan Composer sudah ada
composer global require laravel/installer

# bikin aplikasi
laravel new toko

cd toko
npm install && npm run build
composer run dev

Buka http://localhost:8000. composer run dev menjalankan tiga proses sekaligus โ€” server PHP, queue listener, dan Vite โ€” jadi kamu tidak perlu tiga terminal untuk pekerjaan sehari-hari.

LingkunganPilihan yang masuk akalCatatan
macOS / Windows, ingin cepatLaravel HerdPHP + Nginx terpasang grafis; versi Pro menambah MySQL, Postgres, Redis lokal
Linux, sudah nyaman terminalphp.new + laravel newPaling ringan, paling sedikit lapisan
Tim yang butuh seragamLaravel Sail (Docker)Satu docker-compose.yml; sama persis di semua laptop
Sudah tahu akan pakai worker modeSail + OctaneDibahas di Fase 8 โ€” belum perlu sekarang

Yang terjadi di balik laravel new

  1. Kerangka laravel/laravel diunduh, lalu composer install mengisi vendor/.
  2. .env.example disalin jadi .env.
  3. php artisan key:generate mengisi APP_KEY.
  4. database/database.sqlite dibuat dan php artisan migrate dijalankan.
  5. Repositori git diinisialisasi dengan satu commit awal.

APP_KEY itu bukan basa-basi. Ia dipakai untuk mengenkripsi session, cookie, dan kolom yang kamu tandai terenkripsi. Menggantinya di produksi = semua pengguna ter-logout dan semua data terenkripsi jadi sampah yang tidak bisa dibaca lagi. Simpan seperti kredensial database.

Pindah dari SQLite

SQLite bagus untuk memulai dan untuk tes. Begitu kamu perlu MySQL atau PostgreSQL, ubah .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=toko
DB_USERNAME=root
DB_PASSWORD=
php artisan migrate

Pilih sekarang, bukan nanti. Perbedaan SQLite dan MySQL bocor ke tempat-tempat kecil: penanganan kolom JSON, ketatnya tipe, perilaku ALTER TABLE, dan sensitivitas huruf besar-kecil saat membandingkan string. Kalau produksi akan memakai MySQL atau Postgres, pakai yang sama sejak hari pertama โ€” Sail menyediakannya dalam satu perintah.

Kenapa harus dari public/

Document root web server harus menunjuk ke public/. Kalau ia menunjuk ke root proyek, maka .env, storage/logs/laravel.log, dan seluruh vendor/ bisa diunduh siapa saja lewat URL. Ini satu-satunya kesalahan konfigurasi yang bisa membocorkan seluruh kredensial aplikasimu dalam satu permintaan HTTP.

Konsekuensinya nanti: di Fase 9, setiap konfigurasi kontainer yang kita tulis akan menyebutkan /app/public sebagai root โ€” dan alasannya adalah paragraf ini.

Kebijakan versi

VersiPHPRilisPerbaikan bugPerbaikan keamanan
118.2 โ€“ 8.412 Mar 20243 Sep 202512 Mar 2026
128.2 โ€“ 8.524 Feb 202513 Agu 202624 Feb 2027
138.3 โ€“ 8.517 Mar 2026Q3 202717 Mar 2028

Untuk aplikasi enterprise, dua kolom terakhir adalah yang menentukan jadwal upgrade โ€” dan alasannya dibahas tuntas di Fase 10.

Latihan: buat aplikasi baru bernama toko, jalankan composer run dev, dan pastikan halaman sambutan terbuka. Lalu buka .env, catat nilai APP_KEY di tempat aman, dan jawab: kalau kamu meng-commit .env ke repositori publik, apa saja yang bocor?

Rangkuman ini sengaja dipangkas ke bagian yang dipakai di roadmap. Buka sumber aslinya saat kamu butuh detail lengkap atau referensi parameter.