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


Pelajari cara menginstal Laravel 11 terbaru dan mengkonfigurasi stack modern termasuk Vite, Breeze, Sanctum, serta Tailwind CSS secara step‑by‑step untuk membangun aplikasi web yang cepat, aman, dan siap produksi.

1. Persiapan Lingkungan

Pastikan sistem Anda sudah terinstall:

  • PHP >= 8.2
  • Composer 2.x
  • Node.js >= 20 (untuk Vite)
  • Git
  • Database (MySQL, PostgreSQL, atau SQLite)

1.1. Verifikasi Versi

php -v
composer -V
node -v
npm -v

2. Instalasi Laravel 11

Gunakan Composer untuk membuat proyek baru dengan nama myapp:

composer create-project laravel/laravel myapp "^11.0"

Masuk ke folder proyek:

cd myapp

3. Konfigurasi Basis

3.1. File .env

Salin file contoh dan sesuaikan koneksi database:

cp .env.example .env
php artisan key:generate

Edit .env:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_demo
DB_USERNAME=root
DB_PASSWORD=

3.2. Migrasi Awal

php artisan migrate

4. Integrasi Vite (Asset Bundler)

4.1. Install Dependencies

npm install --save-dev vite laravel-vite-plugin
npm install tailwindcss@latest postcss@latest autoprefixer@latest

4.2. Inisialisasi Tailwind

npx tailwindcss init -p

Ubah tailwind.config.js:

module.exports = {
    content: [
        './resources/**/*.blade.php',
        './resources/**/*.js',
        './resources/**/*.vue',
    ],
    theme: { extend: {} },
    plugins: [],
};

4.3. Update 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,
        }),
    ],
});

4.4. Buat File CSS & JS

resources/css/app.css:

@tailwind base;
@tailwind components;
@tailwind utilities;

resources/js/app.js:

import '../css/app.css';
import.meta.glob(['../../vendor/laravel/framework/src/Illuminate/Views/**/*.blade.php']);

4.5. Jalankan Dev Server

npm run dev

Laravel otomatis menambahkan tag Vite di resources/views/layouts/app.blade.php:

<!-- resources/views/layouts/app.blade.php -->
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Laravel 11</title>
    @vite(['resources/js/app.js'])
</head>
<body>
    @yield('content')
</body>
</html>

5. Instalasi Laravel Breeze (Starter Kit)

5.1. Install Package

composer require laravel/breeze --dev

5.2. Scaffold Auth dengan Blade + Vite

php artisan breeze:install

Jika ingin menggunakan Inertia (Vue) atau React, tambahkan opsi --vue atau --react.

5.3. Install Frontend Dependencies

npm install && npm run dev

5.4. Migrasi Auth Tables

php artisan migrate

6. Mengamankan API dengan Laravel Sanctum

6.1. Install Sanctum

composer require laravel/sanctum

6.2. Publish Config & Migration

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

6.3. Tambahkan Middleware

Di app/Http/Kernel.php tambahkan:

\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,

di dalam grup api (default sudah ada pada Laravel 11).

6.4. Definisikan Route API

// routes/api.php
use AppHttpControllersAPIAuthController;
use Illuminate\Support\Facades\Route;

Route::post('/login', [AuthController::class, 'login']);
Route::middleware('auth:sanctum')->get('/user', function (Request $request) {
    return $request->user();
});

6.5. Contoh Controller

namespace App\Http\Controllers\API;

use App\Models\User;
use Illuminate\Http\Request;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\Hash;
use Laravel\Sanctum\PersonalAccessToken;

class AuthController extends Controller
{
    public function login(Request $request)
    {
        $request->validate([
            'email' => 'required|email',
            'password' => 'required',
        ]);

        $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('api-token')->plainTextToken;
        return response()->json(['token' => $token]);
    }
}

7. Best Practice untuk Proyek Modern

  • Environment Variables: Simpan rahasia (APP_KEY, DB_PASSWORD, SANCTUM_STATEFUL_DOMAINS) di file .env dan jangan pernah commit.
  • Branching Git: Gunakan git flow – main untuk release, dev untuk pengembangan, dan feature branch untuk tiap fitur.
  • Testing: Tuliskan unit & feature test menggunakan PHPUnit & Pest. Contoh: php artisan test.
  • Code Style: Terapkan Laravel Pint (phpcs) untuk standar kode: composer require laravel/pint --dev && ./vendor/bin/pint.
  • Cache Config & Routes di production: php artisan config:cache && php artisan route:cache.
  • Queue & Jobs: Untuk email atau proses berat, gunakan Laravel Queues (database driver atau Redis).

8. Deploy ke Production

  1. Pastikan APP_ENV=production dan APP_DEBUG=false di .env.
  2. Jalankan migrasi dan optimasi:
    php artisan migrate --force
    php artisan config:cache
    php artisan route:cache
    php artisan view:cache
    npm run build
  3. Set permission storage dan bootstrap/cache menjadi writable.
  4. Gunakan web server (NGINX atau Apache) dengan PHP-FPM, pastikan puning public sebagai document root.

Dengan mengikuti langkah‑langkah di atas, Anda memiliki proyek Laravel 11 yang terstruktur modern: Vite untuk asset bundling, Breeze sebagai starter kit UI, Sanctum untuk API token, serta best practice yang siap menghadapi skala produksi. Selanjutnya, Anda dapat menambahkan paket tambahan (mis. Spatie Permission, Livewire) sesuai kebutuhan aplikasi.
Tutorial lengkap setup Laravel 11 dengan Vite, Breeze, Sanctum, dan Tailwind. Panduan step‑by‑step, konfigurasi, contoh kode, dan best practice modern untuk pengembangan web dengan Laravel, PHP Framework, Web Development.

Laravel,PHP Framework,Web Development

#Laravel #LaravelIndonesia #PHP #WebDev #Backend

Tidak ada komentar:

Posting Komentar

Most Read

Loading...

Tutorial

Loading...

Packages

Loading...