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 lainnya)


Tutorial step‑by‑step untuk menginstal Laravel 11, mengonfigurasi Vite, Breeze, Sanctum, serta menyiapkan environment produksi yang aman dan optimal di tahun 2026.

1. Persiapan Lingkungan

Pastikan server atau mesin lokal Anda telah terpasang:

  • PHP >= 8.3
  • Composer 2.x
  • Node.js >= 20 dengan npm atau Yarn
  • Database (MySQL 8+, PostgreSQL 15+, atau SQLite untuk development)

2. Instalasi Laravel 11

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

Perintah di atas membuat proyek baru dengan versi Laravel terbaru (v11) dan memasang semua dependensi dasar.

3. Mengganti Mix ke Vite (default di Laravel 11)

Laravel 11 sudah menggunakan Vite. Pastikan file vite.config.js ada di root proyek.

// vite.config.js
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,
        }),
    ],
});

Jalankan proses compile:

npm install
npm run dev   // untuk development
npm run build // untuk production

4. Instalasi Breeze (Starter Kit)

Breeze menyediakan scaffolding autentikasi berbasis Blade atau React/Vue. Kita gunakan Blade untuk contoh.

composer require laravel/breeze --dev
php artisan breeze:install blade
npm run dev

Jalankan migrasi database:

php artisan migrate

5. Menambahkan Sanctum untuk API Token & SPA Auth

composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate

Aktifkan middleware di app/Http/Kernel.php:

'api' => [
    \Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
    'throttle:api',
    \Illuminate\Routing\Middleware\SubstituteBindings::class,
],

Untuk SPA, pastikan SESSION_DOMAIN dan SANCTUM_STATEFUL_DOMAINS di .env sudah di‑set ke domain aplikasi.

6. Konfigurasi .env untuk Production

APP_NAME="Blog"
APP_ENV=production
APP_KEY=base64:GENERATE_WITH_"php artisan key:generate"
APP_DEBUG=false
APP_URL=https://myblog.com

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=secret

SESSION_DRIVER=cookie
SESSION_SECURE_COOKIE=true
SANCTUM_STATEFUL_DOMAINS=myblog.com,api.myblog.com

CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
FILESYSTEM_DRIVER=public

MAIL_MAILER=smtp
MAIL_HOST=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=YOUR_USERNAME
MAIL_PASSWORD=YOUR_PASSWORD
MAIL_ENCRYPTION=tls

7. Optimasi Production

  • Cache konfigurasi: php artisan config:cache
  • Cache route: php artisan route:cache
  • Cache view: php artisan view:cache
  • Optimasi autoload: composer install --optimize-autoloader --no-dev
  • Gunakan php artisan storage:link untuk public assets.

8. Deployment dengan Docker (Opsional)

Berikut contoh docker-compose.yml minimal:

version: '3.8'
services:
  app:
    image: php:8.3-fpm
    container_name: laravel_app
    working_dir: /var/www/html
    volumes:
      - ./:/var/www/html
    environment:
      - APP_ENV=production
    depends_on:
      - db
  web:
    image: nginx:stable-alpine
    container_name: nginx_web
    ports:
      - "80:80"
    volumes:
      - ./:/var/www/html
      - ./nginx/conf:/etc/nginx/conf.d
    depends_on:
      - app
  db:
    image: mysql:8
    container_name: mysql_db
    environment:
      MYSQL_DATABASE: blog
      MYSQL_ROOT_PASSWORD: secret
    volumes:
      - db_data:/var/lib/mysql
volumes:
  db_data:

9. Testing & Debugging

  • Jalankan unit test: php artisan test
  • Gunakan Laravel Telescope (dev only) untuk inspeksi request/exception.
  • Debug bar: composer require barryvdh/laravel-debugbar --dev

10. Best Practice Modern (2026)

  • Gunakan Typed Properties di model dan service class.
  • Manfaatkan PHP 8.3 attributes untuk route, validation, dan dependency injection.
  • Selalu pisahkan kode domain (DDD) dalam folder App/Domain untuk scalability.
  • Cache query yang berat dengan Cache::remember() atau Redis.
  • Gunakan Feature Flags (Laravel Feature) untuk rollout perubahan.
  • Audit security secara reguler dengan php artisan security:check (built‑in sejak Laravel 11).

Dengan mengikuti langkah‑langkah di atas, Anda dapat menyiapkan proyek Laravel 11 yang modern, aman, dan siap untuk skala produksi. Integrasi Vite, Breeze, dan Sanctum memberikan fondasi yang cepat untuk UI responsif serta API autentikasi yang solid, sementara best practice 2026 memastikan kode tetap bersih, maintainable, dan mudah dipantau.
Tutorial lengkap setup Laravel 11 terbaru dengan Vite, Breeze, Sanctum, serta best practice modern untuk produksi di 2026.

Laravel,PHP Framework,Web Development

#Laravel #LaravelIndonesia #PHP #WebDev #Backend

Tidak ada komentar:

Posting Komentar

Most Read

Loading...

Tutorial

Loading...

Packages

Loading...