Tutorial step‑by‑step untuk menginstal Laravel 11, mengonfigurasi Vite, Breeze, Sanctum, serta menyiapkan environment produksi yang aman dan optimal di tahun 2026.
1. Persiapan Lingkungan
Pastikan server atau mesin lokal Anda telah terpasang:
- PHP >= 8.3
- Composer 2.x
- Node.js >= 20 dengan npm atau Yarn
- Database (MySQL 8+, PostgreSQL 15+, atau SQLite untuk development)
2. Instalasi Laravel 11
composer create-project laravel/laravel blog "11.*" --prefer-dist
cd blog
Perintah di atas membuat proyek baru dengan versi Laravel terbaru (v11) dan memasang semua dependensi dasar.
3. Mengganti Mix ke Vite (default di Laravel 11)
Laravel 11 sudah menggunakan Vite. Pastikan file vite.config.js ada di root proyek.
// vite.config.js
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [
laravel({
input: ['resources/css/app.css', 'resources/js/app.js'],
refresh: true,
}),
],
});
Jalankan proses compile:
npm install
npm run dev // untuk development
npm run build // untuk production
4. Instalasi Breeze (Starter Kit)
Breeze menyediakan scaffolding autentikasi berbasis Blade atau React/Vue. Kita gunakan Blade untuk contoh.
composer require laravel/breeze --dev
php artisan breeze:install blade
npm run dev
Jalankan migrasi database:
php artisan migrate
5. Menambahkan Sanctum untuk API Token & SPA Auth
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
Aktifkan middleware di app/Http/Kernel.php:
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
Untuk SPA, pastikan SESSION_DOMAIN dan SANCTUM_STATEFUL_DOMAINS di .env sudah di‑set ke domain aplikasi.
6. Konfigurasi .env untuk Production
APP_NAME="Blog"
APP_ENV=production
APP_KEY=base64:GENERATE_WITH_"php artisan key:generate"
APP_DEBUG=false
APP_URL=https://myblog.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=secret
SESSION_DRIVER=cookie
SESSION_SECURE_COOKIE=true
SANCTUM_STATEFUL_DOMAINS=myblog.com,api.myblog.com
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
FILESYSTEM_DRIVER=public
MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=YOUR_USERNAME
MAIL_PASSWORD=YOUR_PASSWORD
MAIL_ENCRYPTION=tls
7. Optimasi Production
- Cache konfigurasi:
php artisan config:cache - Cache route:
php artisan route:cache - Cache view:
php artisan view:cache - Optimasi autoload:
composer install --optimize-autoloader --no-dev - Gunakan
php artisan storage:linkuntuk public assets.
8. Deployment dengan Docker (Opsional)
Berikut contoh docker-compose.yml minimal:
version: '3.8'
services:
app:
image: php:8.3-fpm
container_name: laravel_app
working_dir: /var/www/html
volumes:
- ./:/var/www/html
environment:
- APP_ENV=production
depends_on:
- db
web:
image: nginx:stable-alpine
container_name: nginx_web
ports:
- "80:80"
volumes:
- ./:/var/www/html
- ./nginx/conf:/etc/nginx/conf.d
depends_on:
- app
db:
image: mysql:8
container_name: mysql_db
environment:
MYSQL_DATABASE: blog
MYSQL_ROOT_PASSWORD: secret
volumes:
- db_data:/var/lib/mysql
volumes:
db_data:
9. Testing & Debugging
- Jalankan unit test:
php artisan test - Gunakan Laravel Telescope (dev only) untuk inspeksi request/exception.
- Debug bar:
composer require barryvdh/laravel-debugbar --dev
10. Best Practice Modern (2026)
- Gunakan Typed Properties di model dan service class.
- Manfaatkan PHP 8.3 attributes untuk route, validation, dan dependency injection.
- Selalu pisahkan kode domain (DDD) dalam folder
App/Domainuntuk scalability. - Cache query yang berat dengan
Cache::remember()atau Redis. - Gunakan Feature Flags (Laravel Feature) untuk rollout perubahan.
- Audit security secara reguler dengan
php artisan security:check(built‑in sejak Laravel 11).
Dengan mengikuti langkah‑langkah di atas, Anda dapat menyiapkan proyek Laravel 11 yang modern, aman, dan siap untuk skala produksi. Integrasi Vite, Breeze, dan Sanctum memberikan fondasi yang cepat untuk UI responsif serta API autentikasi yang solid, sementara best practice 2026 memastikan kode tetap bersih, maintainable, dan mudah dipantau.
Tutorial lengkap setup Laravel 11 terbaru dengan Vite, Breeze, Sanctum, serta best practice modern untuk produksi di 2026.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar