Tutorial step‑by‑step untuk menginstal Laravel 11 terbaru, mengkonfigurasi Vite, menambahkan Breeze sebagai starter kit, mengamankan API dengan Sanctum, serta mengoptimalkan pengembangan menggunakan best practice terkini.
1. Persiapan Lingkungan
Pastikan sistem Anda memiliki:
- PHP >= 8.2
- Composer 2.x
- Node.js >= 20 (LTS)
- Database MySQL 8 atau PostgreSQL
1.1 Install Composer & Node
sudo apt-get update
sudo apt-get install -y php php-cli php-mbstring php-xml php-bcmath php-json php-curl php-zip curl
curl -sS https://getcomposer.org/installer | php -- --install-dir=/usr/local/bin --filename=composer
curl -fsSL https://deb.nodesource.com/setup_20.x | sudo -E bash -
sudo apt-get install -y nodejs
2. Membuat Project Laravel 11
composer create-project laravel/laravel:^11.0 laravel-modern-app
cd laravel-modern-app
2.1 Verifikasi Instalasi
php artisan --version # Laravel Framework 11.x
npm --version # pastikan Node 20.x
3. Mengintegrasikan Vite (Asset Bundler Bawaan)
Laravel 11 sudah menyertakan Vite secara default. Pastikan file vite.config.js ada dan package.json berisi skrip berikut:
{
"scripts": {
"dev": "vite",
"build": "vite build"
}
}
3.1 Install Dependensi Frontend
npm install
npm run dev # Jalankan dev server Vite
4. Menambahkan Laravel Breeze (Starter Kit) dengan Blade & Inertia (React)
4.1 Instalasi Breeze Blade
composer require laravel/breeze --dev
php artisan breeze:install blade
npm run dev
Jika ingin React + Inertia, gunakan:
php artisan breeze:install vue # atau react
npm run dev
4.2 Migrasi Database
php artisan migrate
Setelah itu, buka http://localhost:8000 dan verifikasi halaman autentikasi.
5. Mengamankan API dengan Laravel Sanctum
5.1 Instalasi Sanctum
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
5.2 Konfigurasi Middleware
Tambahkan EnsureFrontendRequestsAreStateful::class ke grup api pada app/Http/Kernel.php:
protected $middlewareGroups = [
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
];
5.3 Membuat Route API yang Dilindungi
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
5.4 Contoh Request Token dengan Axios
import axios from 'axios';
axios.get('/sanctum/csrf-cookie').then(() => {
axios.post('/login', {email, password}).then(res => {
// token tersimpan otomatis via cookie
axios.get('/api/user').then(userRes => console.log(userRes.data));
});
});
6. Best Practice Modern
- Environment Segregation: gunakan
.env.testinguntuk CI/CD. - Docker Development: jalankan layanan dengan
docker compose up -d(php, mysql, redis, mailhog). - Static Analysis: tambahkan
phpstandanlarastanuntuk tipe safety.composer require --dev phpstan/phpstan nunomaduro/larastan vendor/bin/phpstan analyse - Cache Config & Routes: jalankan
php artisan config:cache&php artisan route:cachesebelum deploy. - CI/CD Pipeline: gunakan GitHub Actions dengan matrix PHP 8.2 dan Node 20, termasuk steps lint, test, dan build Vite.
7. Deploy ke Production (Laravel Forge / Vapor)
- Push repository ke git remote.
- Di Forge, pilih PHP 8.2, buat site, sambungkan repo.
- Set environment variables (APP_KEY, DB_*, SANCTUM_STATEFUL_DOMAINS).
- Run deployment script:
cd /home/forge/your-domain.com git pull origin main composer install --no-interaction --optimize-autoloader --no-dev npm ci && npm run build php artisan migrate --force php artisan config:cache php artisan route:cache php artisan view:cache
Dengan mengikuti langkah‑langkah di atas, Anda memiliki proyek Laravel 11 yang sepenuhnya modern: Vite untuk asset bundling, Breeze sebagai starter kit, Sanctum untuk API security, serta serangkaian best practice yang siap produksi. Kombinasi ini memberikan fondasi yang scalable, maintainable, dan aman bagi aplikasi web berbasis PHP Framework Laravel.
Tutorial lengkap setup Laravel 11 dengan Vite, Breeze, Sanctum, dan best practice modern untuk pengembangan web cepat, aman, dan scalable.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar