Panduan lengkap langkah demi langkah untuk menginstal Laravel 11 terbaru, mengonfigurasi Vite, Breeze, Sanctum, dan Docker demi development yang cepat, aman, dan scalable di tahun 2026.
1. Prasyarat
- PHP >= 8.2
- Composer 2.x
- Node.js >= 20 (npm atau yarn)
- Docker & Docker Compose (opsional untuk lingkungan kontainer)
- Git
2. Instalasi Laravel 11
composer create-project laravel/laravel blog "11.*" --prefer-dist
Masuk ke folder proyek:
cd blog
3. Mengganti Laravel Mix dengan Vite (default di Laravel 11)
Laravel 11 sudah menyertakan Vite secara bawaan. Pastikan file vite.config.js ada dan package.json berisi skrip berikut:
"scripts": {
"dev": "vite",
"build": "vite build"
}
Instal dependensi:
npm install
4. Menambahkan Laravel Breeze (frontend starter)
composer require laravel/breeze --dev
php artisan breeze:install vue
Jika ingin React atau Blade, ganti vue dengan react atau blade. Lalu jalankan:
npm install && npm run dev
5. Mengonfigurasi Laravel Sanctum untuk API Authentication
- Install Sanctum:
composer require laravel/sanctum
- Publish konfigurasi & migrasi:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
- Tambahkan middleware ke
app/Http/Kernel.php:
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
- Gunakan token atau SPA authentication di controller:
// Contoh login API
public function login(Request $request) {
$user = User::where('email', $request->email)->first();
if (! $user || ! Hash::check($request->password, $user->password)) {
return response()->json(['message' => 'Invalid credentials'], 401);
}
$token = $user->createToken('api-token')->plainTextToken;
return response()->json(['token' => $token]);
}
6. Dockerisasi Proyek (opsional, tapi disarankan)
Buat file docker-compose.yml:
version: '3.8'
services:
app:
image: php:8.2-fpm
container_name: laravel_app
working_dir: /var/www/html
volumes:
- ./:/var/www/html
networks:
- laravel
depends_on:
- db
web:
image: nginx:alpine
container_name: laravel_web
ports:
- "8080:80"
volumes:
- ./:/var/www/html
- ./nginx/default.conf:/etc/nginx/conf.d/default.conf
networks:
- laravel
db:
image: mysql:8.0
container_name: laravel_db
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
ports:
- "3306:3306"
networks:
- laravel
networks:
laravel:
driver: bridge
Tambahkan file Nginx nginx/default.conf:
server {
listen 80;
server_name localhost;
root /var/www/html/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass app:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
}
Jalankan container:
docker-compose up -d
7. Testing & Build Production
- Run unit tests:
php artisan test
- Build assets for production:
npm run build
- Deploy ke server (contoh dengan Laravel Forge atau VPS): pastikan
.envberisiAPP_ENV=productiondanAPP_DEBUG=false.
8. Best Practice Modern (2026)
- Gunakan PHPStan atau Psalm untuk static analysis.
- Aktifkan cache route & config (
php artisan route:cache,php artisan config:cache). - Gunakan queue driver Redis untuk background jobs.
- Pastikan .env tidak pernah di‑commit; gunakan Laravel Envoy atau GitHub Secrets untuk CI/CD.
- Gunakan Laravel Telescope hanya di environment development.
- Implementasikan rate‑limiting pada API dengan
ThrottleRequestsmiddleware.
Dengan mengikuti langkah‑langkah di atas, Anda memiliki aplikasi Laravel 11 yang didukung Vite untuk asset modern, Breeze sebagai starter UI, Sanctum untuk otentikasi API, dan Docker untuk lingkungan konsisten. Mengadopsi best practice 2026 seperti static analysis, queue, dan rate‑limiting akan meningkatkan kualitas, keamanan, dan skalabilitas aplikasi Anda.
Panduan step‑by‑step setup Laravel 11 terbaru dengan Vite, Breeze, Sanctum, dan Docker. Cocok untuk developer PHP Framework yang ingin praktik modern di tahun 2026.
Laravel,PHP Framework,Web Development,Vite,Breeze,Sanctum,Docker
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar