News

Loading...

Community Links

Laravel Jobs

Latest News

Loading...

Latest Partners

Loading...

Partners

Loading...

Panduan Lengkap Setup Laravel 11 dengan Best Practice Modern (Vite, Breeze, Sanctum, dan Jetstream)


Tutorial step‑by‑step untuk menginstal Laravel 11 terbaru, mengkonfigurasi Vite, menambahkan starter kit Breeze, mengamankan API dengan Sanctum, serta tips best practice untuk pengembangan modern.

1. Prasyarat

  • PHP >= 8.2
  • Composer terbaru
  • Node.js >= 20 & npm/yarn
  • Database (MySQL, PostgreSQL, atau SQLite)

2. Instalasi Laravel 11

2.1 Buat proyek baru

composer create-project laravel/laravel myapp "11.*"

Perintah di atas akan mengunduh Laravel 11 dengan semua dependensi stabil.

2.2 Masuk ke direktori proyek

cd myapp

3. Setup Front‑end dengan Vite

3.1 Install dependensi Node

npm install

3.2 Jalankan development server

npm run dev

Laravel 11 sudah menyertakan Vite secara default; pastikan file vite.config.js dan resources/js/app.js ada.

4. Menambahkan Starter Kit Breeze

4.1 Install package Breeze

composer require laravel/breeze --dev

4.2 Instalasi scaffolding dengan Blade + Vite

php artisan breeze:install

Jika ingin Livewire atau Inertia, gunakan opsi --blade, --livewire atau --react.

4.3 Build assets

npm run dev

4.4 Migrasi database

php artisan migrate

5. Mengamankan API dengan Laravel Sanctum

5.1 Install Sanctum

composer require laravel/sanctum

5.2 Publish konfigurasi & migrasi

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

5.3 Tambahkan middleware ke api kernel

// app/Http/Kernel.php
'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],

5.4 Buat route token

use App\Models\User;
use Illuminate\Http\Request;

Route::post('/sanctum/token', function (Request $request) {
    $request->validate([
        'email' => 'required|email',
        'password' => 'required',
        'device_name' => 'required',
    ]);
    $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($request->device_name)->plainTextToken;
});

5.5 Contoh penggunaan pada controller

public function profile(Request $request)
{
    return response()->json($request->user());
}

// routes/api.php
Route::middleware('auth:sanctum')->get('/user', [UserController::class, 'profile']);

6. Best Practice Modern

  • Environment variables: Simpan rahasia di .env dan gunakan config:cache pada produksi.
  • Cache config & routes: php artisan config:cache & php artisan route:cache.
  • Docker: Gunakan image resmi php:8.2-fpm & node:20 untuk konsistensi lingkungan.
  • Testing: Manfaatkan PHPUnit & Pest; contoh: php artisan test.
  • Code style: Terapkan Laravel Pint (vendor/bin/pint) untuk format standar.
  • Static analysis: Tambahkan phpstan atau psalm ke pipeline CI.

7. Deploy ke Production

  1. Set APP_ENV=production dan APP_DEBUG=false di .env.
  2. Jalankan composer install --optimize-autoloader --no-dev.
  3. Build assets: npm run build (produces manifest untuk Vite).
  4. Migrasi database: php artisan migrate --force.
  5. Cache konfigurasi & route.
  6. Set proper permissions pada storage & bootstrap/cache.

Dengan mengikuti langkah‑langkah di atas, Anda kini memiliki aplikasi Laravel 11 yang terstruktur, menggunakan Vite untuk asset modern, Breeze sebagai starter kit UI, serta Sanctum untuk API yang aman. Terapkan best practice seperti caching, testing otomatis, dan Docker untuk memastikan kualitas dan skalabilitas di produksi.
Tutorial lengkap langkah demi langkah setup Laravel 11 dengan Vite, Breeze, dan Sanctum. Ikuti best practice modern untuk pengembangan PHP Framework yang cepat, aman, dan scalable.

Laravel,PHP Framework,Web Development

#Laravel #LaravelIndonesia #PHP #WebDev #Backend

Tidak ada komentar:

Posting Komentar

Most Read

Loading...

Tutorial

Loading...

Packages

Loading...