Tutorial step-by-step untuk menginstal Laravel 11 terbaru, mengintegrasikan Vite, Laravel Breeze, dan Sanctum, serta menerapkan best practice pengembangan aplikasi web modern.
1. Prasyarat
Pastikan Anda sudah menginstall:
- PHP >= 8.2
- Composer 2.x
- Node.js >= 20 dengan npm atau Yarn
- Database (MySQL, PostgreSQL, atau SQLite)
2. Instalasi Laravel 11
composer create-project laravel/laravel my-app "11.*"
Masuk ke folder project:
cd my-app
Penjelasan
Perintah di atas mengunduh Laravel 11 stabil bersama semua dependensi default.
3. Setup Vite (Asset Bundler)
# Install Vite dan plugin Laravel
composer require laravel/vite-plugin
# Install dependencies Node
npm install
# Jalankan dev server
npm run dev
Penjelasan
Laravel 11 sudah mengadopsi Vite sebagai default bundler. vite.config.js sudah ter‑generate, cukup jalankan npm run dev untuk hot‑reloading.
4. Instalasi Laravel Breeze (Starter Kit)
composer require laravel/breeze --dev
php artisan breeze:install vue
npm install && npm run dev
Jika lebih suka React:
php artisan breeze:install react
Penjelasan
Breeze menyediakan autentikasi dasar (login, register, reset password) serta scaffolding UI dengan Tailwind CSS. Pilih Vue atau React sesuai kebutuhan.
5. Menambahkan Laravel Sanctum untuk API Token & SPA Authentication
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
Konfigurasi middleware pada app/Http/Kernel.php:
'web' => [
// ...
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
],
Penjelasan
Sanctum memungkinkan autentikasi token untuk SPA atau mobile apps dan melindungi CSRF secara otomatis.
6. Konfigurasi Environment
# .env
APP_NAME="My Laravel App"
APP_ENV=local
APP_KEY=$(php artisan key:generate --show)
APP_DEBUG=true
APP_URL=http://localhost
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel11
DB_USERNAME=root
DB_PASSWORD=
SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1
SESSION_DOMAIN=localhost
MAIL_MAILER=smtp
MAIL_HOST=mailpit
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
MAIL_FROM_ADDRESS="[email protected]"
MAIL_FROM_NAME="${APP_NAME}"
Penjelasan
Pastikan SANCTUM_STATEFUL_DOMAINS berisi domain frontend agar cookie authentication berfungsi.
7. Membuat Route API yang Dilindungi Sanctum
// routes/api.php
use AppHttpControllersProfileController;
Route::middleware('auth:sanctum')->group(function () {
Route::get('/user/profile', [ProfileController::class, 'show']);
});
Controller contoh:
// app/Http/Controllers/ProfileController.php
json($request->user());
}
}
Penjelasan
Middleware auth:sanctum memastikan hanya pengguna yang telah terautentikasi yang dapat mengakses endpoint.
8. Best Practice Modern
- Environment Segregation: Simpan rahasia di
.envdan gunakanconfig:cacheuntuk produksi. - Static Analysis: Jalankan
phpstanataupsalmsecara rutin. - Testing: Buat Feature Test untuk API dengan
php artisan test. - Git Hooks: Gunakan
huskyuntuk linting JavaScript danpre-commitPHP CS Fixer. - Docker: Development dengan
docker-compose.yml(php, mysql, redis, mailpit) untuk konsistensi lingkungan.
9. Deploy ke Production
# Build assets
npm run build
# Optimasi Laravel
php artisan config:cache
php artisan route:cache
php artisan view:cache
php artisan event:cache
# Migrasi DB
php artisan migrate --force
Pastikan server menjalankan PHP 8.2+, memiliki ekstensi pdo_mysql, dan queue worker (Supervisor) untuk job background.
Dengan mengikuti langkah‑langkah di atas, Anda memiliki proyek Laravel 11 yang terstruktur, menggunakan Vite untuk asset modern, Breeze sebagai starter kit UI, dan Sanctum untuk autentikasi API yang aman. Terapkan best practice seperti caching konfigurasi, static analysis, dan CI/CD untuk menjaga kualitas kode seiring pertumbuhan aplikasi.
Tutorial step-by-step setup Laravel 11 dengan Vite, Breeze, dan Sanctum. Panduan lengkap instalasi, konfigurasi, contoh kode, dan best practice modern untuk pengembangan web dengan Laravel, PHP Framework, Web Development.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar