Tutorial step-by-step untuk menginstal Laravel 11 terbaru dan mengkonfigurasi stack modern seperti Vite, Breeze, Sanctum, serta best practice keamanan dan struktur proyek.
1. Prasyarat
- PHP >= 8.3
- Composer 2.x
- Node.js >= 20 & npm
- Database MySQL/PostgreSQL (opsional)
2. Instalasi Laravel 11
composer create-project laravel/laravel blog "11.*" --prefer-dist
Masuk ke direktori proyek:
cd blog
3. Setup Frontend dengan Vite
Laravel 11 sudah menyertakan Vite secara default. Pastikan dependensi terinstall:
npm install
Jalankan server dev:
npm run dev
Jika ingin produksi, gunakan:
npm run build
4. Instalasi Laravel Breeze (Starter Kit)
composer require laravel/breeze --dev
php artisan breeze:install vue
npm install && npm run dev
Breeze menyediakan scaffolding autentikasi dengan Vue 3 + Vite. Pilihan lain: blade atau react.
5. Konfigurasi Sanctum untuk API Token
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
Tambahkan middleware EnsureFrontendRequestsAreStateful::class pada api guard di config/sanctum.php (default sudah di‑set untuk localhost).
// config/auth.php
'guards' => [
'web' => [
'driver' => 'session',
'provider' => 'users',
],
'api' => [
'driver' => 'sanctum',
'provider' => 'users',
],
],
Contoh Penggunaan Token
// routes/api.php
use App\Models\User;
use Illuminate\Http\Request;
Route::post('/login', function (Request $request) {
$user = User::where('email', $request->email)->first();
if (! $user || ! Hash::check($request->password, $user->password)) {
return response()->json(['message' => 'Invalid credentials'], 401);
}
$token = $user->createToken('mobile-app')->plainTextToken;
return response()->json(['token' => $token]);
});
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
return $request->user();
});
6. Environment & Konfigurasi Keamanan
- Set
APP_ENV=productiondanAPP_DEBUG=falsepada server produksi. - Gunakan
php artisan key:generateuntuk APP_KEY. - Aktifkan
HTTPSdenganApp\Http\Middleware\ForceHttps(custom middleware).
7. Struktur Direktori yang Direkomendasikan
/app
/Http
/Controllers
/Middleware
/Models
/resources
/js (Vite entry)
/css
/views (Blade)
/routes
web.php
api.php
/database
/migrations
/seeders
Gunakan Service Provider terpisah untuk logika domain agar Controllers tetap tipis.
8. Testing Otomatis
php artisan test
Laravel 11 mendukung PHPUnit 10 dan Pest. Contoh test autentikasi:
/** @test */
public function user_can_login_with_valid_credentials()
{
$user = User::factory()->create(['password' => bcrypt('secret')]);
$response = $this->postJson('/api/login', ['email' => $user->email, 'password' => 'secret']);
$response->assertOk()->assertJsonStructure(['token']);
}
9. Deploy ke Production
- Push kode ke repo (GitHub/GitLab).
- Gunakan Laravel Forge, Vapor, atau Docker.
- Di server:
composer install --optimize-autoloader --no-dev - Set
.envdengan kredensial DB, cache, queue. - Jalankan migrasi:
php artisan migrate --force - Build assets:
npm ci && npm run build - Cache konfigurasi & route:
php artisan config:cache && php artisan route:cache - Queue worker (optional):
php artisan queue:work --daemon
10. Best Practice Tambahan
- Gunakan
phpstan+larastanuntuk static analysis. - Integrasi
Laravel Telescopedi environment development. - Gunakan
spatie/laravel-responsecacheuntuk caching response API. - Audit keamanan dengan
Laravel Security Checklist(GitHub).
Dengan mengikuti langkah‑langkah di atas, Anda akan memiliki aplikasi Laravel 11 yang modern, aman, dan siap skalabilitas. Stack Vite‑Breeze‑Sanctum memberikan pengalaman developer yang cepat, sementara best practice seperti caching, testing, dan static analysis memastikan kualitas kode untuk produksi.
Tutorial lengkap setup Laravel 11 terbaru dengan Vite, Breeze, Sanctum, dan best practice modern untuk developer PHP.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar