Ikuti langkah demi langkah cara menginstal Laravel 11 terbaru, mengkonfigurasi Vite, Breeze, Sanctum, serta Docker untuk pengembangan yang efisien dan aman.
1. Prasyarat
1.1. Sistem Operasi & Software
- PHP >= 8.2
- Composer 2.x
- Node.js >= 20
- Docker & Docker Compose (opsional but recommended)
1.2. Buat Direktori Project
mkdir laravel-modern && cd laravel-modern2. Instalasi Laravel 11
composer create-project laravel/laravel . "11.*"Perintah ini mengunduh Laravel 11 beserta dependensi standar.
3. Mengintegrasikan Vite
3.1. Install Vite & Dependencies
npm install --save-dev vite laravel-vite-plugin3.2. Konfigurasi 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,
}),
],
});3.3. Update Blade Layout
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Laravel</title>
@vite(['resources/css/app.css', 'resources/js/app.js'])
</head>
<body>
@yield('content')
</body>
</html>4. Menambahkan Laravel Breeze (Starter Kit)
composer require laravel/breeze --dev
php artisan breeze:install vue
npm install && npm run devBreeze mengatur autentikasi dasar dengan Vue 3 dan Vite.
5. Mengamankan API dengan Laravel Sanctum
5.1. Instal Sanctum
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate5.2. Konfigurasi Middleware
Tambahkan EnsureFrontendRequestsAreStateful::class pada grup api di app/Http/Kernel.php:
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],5.3. Contoh Route & Controller
// routes/api.php
use AppHttpControllersAPIAuthController;
Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:sanctum')->get('/user', function (\Illuminate\Http\Request $request) {
return $request->user();
});// app/Http/Controllers/API/AuthController.php
namespace App\Http\Controllers\API;
use App\Http\Controllers\Controller;
use App\Models\User;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Hash;
use Laravel\Sanctum\PersonalAccessToken;
class AuthController extends Controller
{
public function login(Request $request)
{
$request->validate([
'email' => 'required|email',
'password' => 'required',
]);
$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 (Opsional tetapi Highly Recommended)
6.1. Buat 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: nginx_web
ports:
- "8080:80"
volumes:
- ./:/var/www/html
- ./nginx/conf.d:/etc/nginx/conf.d
networks:
- laravel
db:
image: mysql:8.0
container_name: mysql_db
environment:
MYSQL_ROOT_PASSWORD: secret
MYSQL_DATABASE: laravel
MYSQL_USER: laravel
MYSQL_PASSWORD: secret
ports:
- "3306:3306"
networks:
- laravel
networks:
laravel:
driver: bridge6.2. Nginx Config (nginx/conf.d/default.conf)
server {
listen 80;
index index.php index.html;
root /var/www/html/public;
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;
}
}
6.3. Jalankan Container
docker compose up -dSetelah kontainer berjalan, lakukan migration:
docker exec -it laravel_app php artisan migrate7. Best Practice Modern
- Environment Variables: Simpan rahasia di
.envdan gunakandotenvdi Docker. - Code Quality: Gunakan Laravel Pint untuk standar coding:
composer require laravel/pint --devthenvendor/bin/pint. - Testing: Tuliskan Feature Test menggunakan Pest atau PHPUnit, jalankan dengan
php artisan test. - Cache Config & Routes: Setelah produksi, jalankan
php artisan config:cachedanphp artisan route:cache. - Static Analysis: Integrasikan PHPStan atau Psalm untuk deteksi bug dini.
Dengan mengikuti tutorial ini, Anda mendapat setup Laravel 11 yang modern, cepat dengan Vite, lengkap authentication via Sanctum, dan lingkungan pengembangan terisolasi menggunakan Docker. Praktik‑praktik di atas meningkatkan keamanan, kecepatan development, dan kesiapan produksi untuk proyek PHP Framework modern.
Tutorial step-by-step Laravel 11 setup modern dengan Vite, Breeze, Sanctum, dan Docker. Panduan lengkap bagi developer PHP Framework untuk lingkungan produksi siap pakai.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar