News

Loading...

Community Links

Laravel Jobs

Latest News

Loading...

Latest Partners

Loading...

Partners

Loading...

Setup Laravel 11 dengan Best Practice Modern: Vite, Breeze, Sanctum, dan Testing


Panduan lengkap step‑by‑step untuk menyiapkan proyek Laravel terbaru (v11) menggunakan bundler Vite, starter kit Breeze, otentikasi API Sanctum, serta testing otomatis yang siap produksi di tahun 2026.

1. Prasyarat

  • PHP >= 8.3
  • Composer 2.x
  • Node.js >= 20 (LTS) dan npm atau Yarn
  • Database MySQL 8.x atau PostgreSQL 15
  • Git

2. Instalasi Laravel 11

composer create-project laravel/laravel blog "11.*" --prefer-dist

Masuk ke folder proyek:

cd blog

3. Mengonfigurasi Vite

Laravel 11 sudah menyertakan Vite secara default, namun pastikan dependensi terbaru:

npm install --save-dev vite@^5.0 laravel-vite-plugin@^1.0

Edit vite.config.js jika ingin menambah alias atau plugin:

import { defineConfig } from 'vite';
import laravel from 'laravel-vite-plugin';

export default defineConfig({
    plugins: [laravel({
        input: ['resources/js/app.js', 'resources/css/app.css'],
        refresh: true,
    })],
    resolve: {
        alias: {
            '@': '/resources/js',
        },
    },
});

4. Install Breeze dengan Inertia‑React (opsional)

Breeze menyediakan scaffolding ringan untuk otentikasi. Pilih stack yang diinginkan; contoh ini memakai React + Inertia:

composer require laravel/breeze --dev
php artisan breeze:install react

Install depedensi front‑end dan jalankan dev server:

npm install
npm run dev

5. Menyiapkan Sanctum untuk API Token

composer require laravel/sanctum

Publikasikan konfigurasi dan migrasi:

php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate

Tambahkan middleware EnsureFrontendRequestsAreStateful::class di app/Http/Kernel.php pada grup api (default di Laravel 11 sudah ada).

Contoh model User menggunakan token:

use Laravel\Sanctum\HasApiTokens;

class User extends Authenticatable {
    use HasApiTokens, Notifiable;
}

Endpoint login API:

Route::post('/api/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);
    }
    return $user->createToken('api-token')->plainTextToken;
});

6. Konfigurasi Environment

# .env
APP_NAME="Laravel"
APP_ENV=local
APP_KEY=base64:$(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=laravel
DB_USERNAME=root
DB_PASSWORD=

SANCTUM_STATEFUL_DOMAINS=localhost,127.0.0.1
SESSION_DOMAIN=localhost
COOKIE_DOMAIN=localhost

7. Best Practice – Struktur Direktori

  • app/Models untuk semua Eloquent model.
  • app/Http/Controllers/Api untuk controller API.
  • routes/api.php hanya berisi route yang menggunakan auth:sanctum.
  • resources/js/Pages menampung komponen Inertia.
  • tests/Feature menambahkan tes end‑to‑end untuk setiap endpoint.

8. Menulis Tes Otentikasi Sanctum

public function test_user_can_login_and_access_protected_route()
{
    $user = User::factory()->create(['password' => bcrypt('secret')]);

    $response = $this->postJson('/api/login', [
        'email' => $user->email,
        'password' => 'secret',
    ]);

    $token = $response->json();
    $this->assertNotNull($token);

    $protected = $this->withHeaders([
        'Authorization' => "Bearer {$token}",
    ])->getJson('/api/user');

    $protected->assertOk();
    $protected->assertJsonPath('email', $user->email);
}

9. Deploy ke Production

  1. Set APP_ENV=production dan APP_DEBUG=false.
  2. Jalankan composer install --optimize-autoloader --no-dev.
  3. Build assets: npm run build (Vite menghasilkan manifest).
  4. Cache config & routes: php artisan config:cache && php artisan route:cache.
  5. Gunakan queue worker Supervisor atau Laravel Horizon untuk job background.

10. Penutup

Dengan mengikuti langkah‑langkah di atas, Anda mendapatkan aplikasi Laravel 11 yang modern, cepat berkat Vite, dilengkapi otentikasi API yang aman melalui Sanctum, serta UI responsif menggunakan Breeze + React. Semua komponen mengikuti best practice Laravel dan siap untuk skala produksi di tahun 2026.


Laravel 11 menawarkan ekosistem yang lebih ringan dan terintegrasi. Menggabungkan Vite, Breeze, dan Sanctum memberikan fondasi yang kuat untuk aplikasi web dan API modern, sekaligus memenuhi standar keamanan dan performa terkini. Ikuti panduan ini, tambahkan testing, dan Anda siap meluncurkan produk yang scalable dan maintainable.
Panduan lengkap step‑by‑step setup Laravel 11 dengan Vite, Breeze, Sanctum, dan testing. Praktik terbaik modern Laravel 2026 untuk pengembangan web cepat dan aman.

Laravel,PHP Framework,Web Development

#Laravel #LaravelIndonesia #PHP #WebDev #Backend

Tidak ada komentar:

Posting Komentar

Most Read

Loading...

Tutorial

Loading...

Packages

Loading...