Tutorial step-by-step ini membahas cara menginstal Laravel 11 terbaru, mengintegrasikan Vite untuk asset bundling, Breeze untuk scaffolding auth, serta Sanctum untuk API token authentication, dengan konfigurasi optimal.
1. Persyaratan Sistem
Pastikan server Anda memenuhi kebutuhan berikut:
- PHP >= 8.2
- Composer 2.x
- Node.js >= 20 (LTS) dan npm atau Yarn
- Database MySQL 8.x atau PostgreSQL 15
2. Instalasi Laravel 11
composer create-project laravel/laravel:^11 my-app
cd my-app
Perintah di atas mengunduh Laravel 11 dengan struktur folder standar.
3. Konfigurasi Environment
cp .env.example .env
php artisan key:generate
Edit .env dan sesuaikan koneksi database serta variabel penting lainnya:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel11
DB_USERNAME=root
DB_PASSWORD=
4. Setup Vite (Asset Bundler Modern)
Laravel 11 sudah menyertakan Vite secara default. Pastikan vite.config.js ada dan meng‑export konfigurasi berikut:
import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';
export default defineConfig({
plugins: [laravel(['resources/js/app.js', 'resources/css/app.css'])],
});
Install dependensi Node:
npm install
npm run dev // untuk mode development
npm run build // untuk produksi
5. Instalasi Laravel Breeze (Scaffolding Auth)
composer require laravel/breeze --dev
php artisan breeze:install vue // atau react, blade, svelte sesuai kebutuhan
npm install && npm run dev
Breeze akan men-generate route, controller, view, dan komponen Vue (atau pilihan lain) untuk registrasi, login, dan reset password.
6. Menambahkan Laravel Sanctum (API Token Auth)
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
Tambahkan middleware EnsureFrontendRequestsAreStateful::class ke grup api pada app/Http/Kernel.php jika Anda akan menggunakan cookie‑based SPA authentication.
6.1. Konfigurasi Model User
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable
{
use HasApiTokens, Notifiable;
// ...
}
6.2. Membuat Route API
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
7. Contoh Implementasi Token Authentication
// Login dan dapatkan token
$response = Http::post('/login', [
'email' => $email,
'password' => $password,
]);
$token = $response->json('token');
// Mengakses endpoint yang dilindungi
$profile = Http::withToken($token)->get('/api/user');
Untuk SPA berbasis Vue, gunakan Axios dengan withCredentials: true dan pastikan SESSION_DOMAIN serta SANCTUM_STATEFUL_DOMAINS di .env sudah di‑set.
8. Best Practice Modern
- Envoyer/CI-CD: Simpan konfigurasi rahasia di secret manager, hindari commit .env.
- Cache Config & Routes:
php artisan config:cache&php artisan route:cachepada produksi. - Queue & Jobs: Gunakan
redissebagai driver queue untuk email verification dan notifikasi. - Testing: Tuliskan Feature Test dengan
php artisan testuntuk endpoint Sanctum. - Security: Aktifkan
HTTPS, setSESSION_SECURE_COOKIE=true, dan gunakanRateLimiterpada route auth.
9. Deploy ke Production
- Upload kode ke server (Git, FTP, atau platform CI).
- Jalankan
composer install --optimize-autoloader --no-dev. - Build assets:
npm ci && npm run build. - Migrasi database:
php artisan migrate --force. - Cache konfigurasi:
php artisan config:cachedanphp artisan route:cache. - Set permission storage dan bootstrap/cache ke writable.
- Restart queue workers dan PHP‑FPM.
Dengan mengikuti langkah-langkah di atas, Anda memiliki aplikasi Laravel 11 yang modern, cepat, dan siap produksi. Vite memberikan build asset yang optimal, Breeze mempercepat scaffolding UI, serta Sanctum menambahkan keamanan API token yang mudah diintegrasikan dengan SPA. Terapkan best practice seperti caching, queue, dan CI/CD untuk menjaga kualitas dan skalabilitas proyek Anda.
Tutorial lengkap cara setup Laravel 11 dengan Vite, Breeze, dan Sanctum. Panduan step-by-step, konfigurasi, contoh kode, dan best practice modern untuk pengembangan web PHP Framework.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar