Tutorial step‑by‑step ini menjelaskan cara menginstal Laravel 11 terkini, mengkonfigurasi Vite, Breeze, serta Sanctum untuk otentikasi API yang aman, lengkap dengan contoh kode dan best practice.
1. Prasyarat
- PHP 8.3 atau lebih tinggi
- Composer terbaru
- Node.js 20.x dan npm 10.x
- Database MySQL/PostgreSQL
2. Instalasi Laravel 11
composer create-project laravel/laravel blog "11.*" --prefer-dist
cd blog
Perintah di atas mengunduh Laravel 11 versi stabil terbaru.
3. Konfigurasi Vite (Asset Bundler Modern)
- Install dependencies:
- Ubah
vite.config.js: - Update
package.jsonscript: - Jalankan dev server:
npm install && npm install --save-dev vite laravel-vite-plugin
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,
}),
],
});
"scripts": {
"dev": "vite",
"build": "vite build"
}
npm run dev
4. Instalasi Laravel Breeze (Starter Kit UI)
composer require laravel/breeze --dev
php artisan breeze:install vue
npm install && npm run dev
Breeze menyediakan scaffolding autentikasi sederhana dengan Vue 3 + Vite.
5. Menambahkan Laravel Sanctum (API Token & SPA Authentication)
- Install Sanctum:
- Publish konfigurasi dan migrasi:
- Tambahkan middleware pada
app/Http/Kernel.php: - Konfigurasi
config/sanctum.phpuntuk domain SPA:
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
'stateful' => explode(',', env('SANCTUM_STATEFUL_DOMAINS', 'localhost,127.0.0.1')),
6. Contoh Implementasi API dengan Sanctum
// routes/api.php
use App\Http\Controllers\API\PostController;
Route::middleware('auth:sanctum')->group(function () {
Route::get('/posts', [PostController::class, 'index']);
Route::post('/posts', [PostController::class, 'store']);
});
// app/Http/Controllers/API/PostController.php
namespace App\Http\Controllers\API;
use App\Models\Post;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
class PostController extends Controller
{
public function index()
{
return Post::latest()->paginate(10);
}
public function store(Request $request)
{
$validated = $request->validate([
'title' => 'required|string|max:255',
'body' => 'required|string',
]);
return Post::create($validated);
}
}
7. Best Practice Modern
- Environment Variables: Simpan semua credential (DB, SANCTUM_STATEFUL_DOMAINS) di
.envdan jangan commit file tersebut. - Cache Config & Routes: Pada production jalankan
php artisan config:cachedanphp artisan route:cache. - Gunakan Typed Requests: Buat Form Request khusus untuk validasi, contoh
php artisan make:request StorePostRequest. - Static Asset Versioning: Vite sudah menambahkan hash ke file‑bundle, cukup gunakan
@viteblade directive. - Testing: Laravel 11 mendukung Pest & PHPunit. Tambahkan tes fitur untuk endpoint Sanctum.
8. Deploy ke Production
- Set
APP_ENV=productiondanAPP_DEBUG=falsedi .env. - Build assets:
- Jalankan migrasi dan queue:
- Optimasi autoloader:
npm run build
php artisan migrate --force
php artisan queue:work --daemon
composer install --optimize-autoloader --no-dev
Dengan mengikuti langkah‑langkah di atas, Anda memiliki proyek Laravel 11 yang modern, cepat, dan aman, siap untuk pengembangan skala besar.
Laravel 11, dipadukan dengan Vite, Breeze, dan Sanctum, memberikan fondasi yang ringan namun kuat untuk aplikasi web modern. Ikuti best practice yang dijabarkan untuk menjaga performa, keamanan, dan kemudahan pemeliharaan, sehingga proyek Anda siap bersaing di era PHP Framework terkini.
Tutorial lengkap setup Laravel 11 dengan Vite, Breeze, dan Sanctum. Langkah instalasi, konfigurasi, contoh kode, dan best practice modern untuk pengembangan web dengan Laravel, PHP Framework, dan Web Development.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar