Tutorial step-by-step ini membahas cara menginstal Laravel 11 terbaru dan mengkonfigurasi ekosistem modern seperti Vite, Breeze, Sanctum, serta best practice untuk pengembangan aplikasi web yang aman dan cepat.
1. Prasyarat
Pastikan server Anda sudah memenuhi persyaratan:
- PHP >= 8.2
- Composer 2.x
- Node.js >= 20 dengan npm atau Yarn
- Database (MySQL 8, PostgreSQL, atau SQLite)
2. Instalasi Laravel 11
composer create-project laravel/laravel my-app "11.*"
Masuk ke direktori proyek:
cd my-app
3. Mengganti Laravel Mix dengan Vite
Laravel 11 sudah menyertakan Vite secara default, tapi pastikan konfigurasi berikut ada:
# Install dependensi frontend
npm install
# Jalankan dev server
npm run dev
Jika Anda mengupgrade dari versi lama, jalankan:
composer require laravel/vite-plugin --dev
npm install vite laravel-vite-plugin
3.1. 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,
}),
],
});
4. Menambahkan UI Starter Kit dengan Breeze
composer require laravel/breeze --dev
php artisan breeze:install vue
# atau inertia & react sesuai preferensi
npm install
npm run dev
php artisan migrate
Breeze menyediakan scaffolding authentication dengan Vue, TailwindCSS, dan Vite terintegrasi.
4.1. Struktur folder setelah install
resources/js/Pages– komponent Vueresources/views– layout Bladeroutes/web.php– route autentikasi
5. Mengamankan API dengan Laravel Sanctum
Sanctum memungkinkan token‑based authentication untuk SPA atau mobile.
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
5.1. Konfigurasi Middleware
Tambahkan EnsureFrontendRequestsAreStateful::class ke grup api di app/Http/Kernel.php:
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
5.2. Membuat Route API
// routes/api.php
use App\Http\Controllers\API\UserController;
Route::middleware('auth:sanctum')->get('/user', [UserController::class, 'show']);
5.3. Menghasilkan Token di Controller
public function login(Request $request)
{
$credentials = $request->only('email', 'password');
if (!Auth::attempt($credentials)) {
return response()->json(['message' => 'Invalid credentials'], 401);
}
$user = $request->user();
$token = $user->createToken('spa-token')->plainTextToken;
return response()->json(['token' => $token]);
}
6. Best Practice Modern
- Environment: Gunakan
.env.exampleyang lengkap, jangan commit.envke VCS. - Linting & Formatting: Tambahkan
eslint,stylelint, danphpstanuntuk kode yang konsisten. - Testing: Buat tes unit dengan PestPHP atau PHPUnit, contoh:
php artisan test - Cache Config: Jalankan
php artisan config:cache&route:cachedi produksi. - Queue: Siapkan driver Redis untuk job queue, contoh pada
.env:QUEUE_CONNECTION=redis - Static Analysis: Gunakan
phpstandanpsalmuntuk deteksi bug dini.
7. Deploy ke Production (contoh dengan Laravel Forge)
- Buat site baru, pilih PHP 8.2, dan hubungkan repository Git.
- Setting
.envproduction (APP_ENV=production, APP_DEBUG=false). - Jalankan script deployment:
composer install --optimize-autoloader --no-dev npm ci npm run build php artisan migrate --force php artisan optimize - Enable queue workers & schedule via Supervisor.
8. Verifikasi Instalasi
Buka browser dan akses http://your-domain.test. Anda harus melihat halaman landing Breeze. Coba login, buat token via API, dan pastikan respons JSON berisi token.
Dengan mengikuti langkah‑langkah di atas, Anda memiliki proyek Laravel 11 yang siap produksi, menggabungkan Vite untuk asset bundling, Breeze untuk UI modern, serta Sanctum untuk keamanan API. Terapkan best practice seperti caching, queue, dan static analysis untuk memastikan kode tetap scalable dan maintainable.
Tutorial lengkap setup Laravel 11 dengan Vite, Breeze, Sanctum, serta best practice modern untuk pengembangan web cepat, aman, dan scalable.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend