Temukan langkah demi langkah instalasi Laravel 11 terbaru, integrasi Vite, Breeze, serta Sanctum untuk otentikasi API yang aman, lengkap dengan contoh kode dan best practice terkini.
1. Prasyarat Sistem
Pastikan server Anda memenuhi requirement Laravel 11:
- PHP >= 8.2
- Composer terbaru
- Node.js >= 20 dengan npm atau Yarn
- Database (MySQL 8+, PostgreSQL, atau SQLite)
2. Instalasi Laravel 11
composer create-project laravel/laravel blog "11.*" --prefer-dist
Masuk ke folder proyek:
cd blog
3. Setup Vite (Pengganti Laravel Mix)
Laravel 11 sudah menyertakan Vite secara default. Pastikan vite.config.js ada, lalu install dependensi front‑end:
npm install
npm run dev
Jika ingin menambah TailwindCSS:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
Konfigurasi tailwind.config.js:
module.exports = {
content: ["./resources/**/*.blade.php", "./resources/**/*.js", "./resources/**/*.vue"],
theme: { extend: {} },
plugins: [],
};
4. Instalasi Laravel Breeze (Starter Kit UI)
Breeze memberikan autentikasi sederhana berbasis Blade atau Inertia. Kita pakai Blade:
composer require laravel/breeze --dev
php artisan breeze:install blade
npm run dev
Jalankan migrasi untuk tabel user:
php artisan migrate
5. Menyiapkan Laravel Sanctum untuk API Authentication
composer require laravel/sanctum
Publish konfigurasi dan 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,
],
Contoh route API yang dilindungi:
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
Contoh login API menggunakan token:
// App/Http/Controllers/API/AuthController.php
public function login(Request $request)
{
$validated = $request->validate([
'email' => 'required|email',
'password' => 'required',
]);
if (!Auth::attempt($validated)) {
return response()->json(['message' => 'Invalid credentials'], 401);
}
$token = $request->user()->createToken('api-token')->plainTextToken;
return response()->json(['token' => $token]);
}
6. Konfigurasi Environment & Security Best Practice
- Set
APP_DEBUG=falsepada produksi. - Gunakan
.env.examplesebagai template dan jangan commit.env. - Aktifkan
APP_URLyang tepat danSESSION_SECURE_COOKIE=truebila HTTPS. - Tambahkan CSP header via middleware
fruitcake/laravel-cspjika diperlukan.
7. Deploy ke Server Production (contoh menggunakan Laravel Forge)
- Push kode ke repository Git (GitHub/GitLab).
- Buat site baru di Forge, pilih PHP 8.2, dan hubungkan repository.
- Set environment variables di Forge sesuai
.env. - Jalankan
php artisan migrate --forcemelalui SSH. - Enable queue workers jika aplikasi memakai job.
- Pastikan
npm run builddijalankan pada server untuk menghasilkan aset production.
8. Testing & Debugging
Jalankan unit test dengan PHPUnit:
php artisan test
Gunakan Laravel Telescope (opsional) untuk inspeksi request dan query:
composer require laravel/telescope
php artisan telescope:install
php artisan migrate
9. Best Practice Tambahan
- Gunakan route model binding untuk keamanan dan kebersihan kode.
- Pisahkan logika bisnis ke Service Class, bukan Controller.
- Cache konfigurasi dan route:
php artisan config:cache && php artisan route:cache. - Gunakan
php artisan optimizesebelum deploy. - Aktifkan
Laravel Octane(Swoole atau RoadRunner) untuk performa tinggi bila diperlukan.
Dengan mengikuti tutorial ini, Anda akan memiliki proyek Laravel 11 yang modern, terstruktur, dan siap produksi. Integrasi Vite, Breeze, serta Sanctum memberi fondasi kuat untuk UI responsif dan API yang aman, sementara best practice yang diterapkan memastikan aplikasi tetap scalable dan maintainable di masa depan.
Tutorial step-by-step setup Laravel 11 dengan Vite, Breeze, Sanctum, dan best practice modern untuk proyek PHP Framework terkini.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend