Panduan lengkap langkah demi langkah untuk menginstal Laravel 11 terbaru dan mengkonfigurasi stack modern termasuk Vite, Breeze, Sanctum, serta best practice keamanan dan pengembangan.
1. Prasyarat
- PHP >= 8.2
- Composer 2.x
- Node.js >= 20 dengan npm atau Yarn
- Database MySQL atau PostgreSQL
2. Instalasi Laravel 11
composer create-project laravel/laravel laravel-modern "11.*" --prefer-dist
cd laravel-modern
Perintah di atas mengunduh Laravel 11 versi stabil terbaru.
3. Setup Frontend dengan Vite
Laravel 11 sudah terintegrasi Vite secara default. Pastikan file vite.config.js ada dan sesuaikan bila diperlukan.
# instalasi dependensi frontend
yarn install # atau npm install
# jalankan dev server
yarn dev # atau npm run dev
4. Instalasi Laravel Breeze (Starter Kit)
composer require laravel/breeze --dev
php artisan breeze:install vue
# atau untuk Blade
# php artisan breeze:install blade
# compile assets
yarn install && yarn dev
Breeze menyediakan authentication scaffolding yang ringan dengan Vue 3 (atau Blade).
5. Konfigurasi Sanctum untuk API Token
composer require laravel/sanctum
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
Tambahkan middleware di app/Http/Kernel.php:
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
Gunakan token di model User:
use Laravel\Sanctum\HasApiTokens;
class User extends Authenticatable {
use HasApiTokens, Notifiable;
}
6. Database & .env
Sesuaikan koneksi database di file .env:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel_modern
DB_USERNAME=root
DB_PASSWORD=
Jalankan migrasi:
php artisan migrate
7. Best Practice – Struktur Folder & Config
- Service Providers: Pindahkan logika bootstrapping khusus ke service provider terpisah.
- Form Request: Validasi di
app/Http/Requestsbukan di controller. - Resource Classes: Gunakan API Resources untuk respon JSON konsisten.
- Environment Variables: Simpan rahasia (API keys, JWT secret) di
.envdan tidak di repo. - Cache Config: Jalankan
php artisan config:cache&php artisan route:cachepada produksi.
8. Contoh Endpoint API dengan Sanctum
// routes/api.php
use App\Http\Controllers\Api\PostController;
Route::middleware('auth:sanctum')->group(function () {
Route::get('/posts', [PostController::class, 'index']);
Route::post('/posts', [PostController::class, 'store']);
});
// app/Http/Controllers/Api/PostController.php
namespace App\Http\Controllers\Api;
use App\Http\Controllers\Controller;
use App\Http\Resources\PostResource;
use App\Models\Post;
use Illuminate\Http\Request;
class PostController extends Controller {
public function index() {
return PostResource::collection(Post::all());
}
public function store(Request $request) {
$validated = $request->validate([
'title' => 'required|string|max:255',
'body' => 'required|string',
]);
$post = Post::create($validated);
return new PostResource($post);
}
}
9. Deploy ke Production
- Set
APP_ENV=productiondanAPP_DEBUG=falsedi.env. - Jalankan
composer install --optimize-autoloader --no-dev. - Build assets:
yarn build(ataunpm run build). - Migrasi & cache:
php artisan migrate --force,php artisan config:cache,php artisan route:cache,php artisan view:cache. - Gunakan queue worker dan supervisor untuk job yang panjang.
10. Testing & Debugging
# Unit & Feature test nphp artisan test
# Debugbar (dev only)
composer require barryvdh/laravel-debugbar --dev
Dengan langkah-langkah di atas, Anda memiliki aplikasi Laravel 11 yang modern, aman, dan siap skala.
Laravel 11 kini menawarkan stack development yang lebih ringan dengan Vite, Breeze, dan Sanctum. Mengikuti best practice seperti pemisahan logika, penggunaan Form Request, dan caching konfigurasi akan meningkatkan performa serta keamanan aplikasi produksi Anda.
Panduan lengkap instalasi Laravel 11 dengan Vite, Breeze, Sanctum, serta best practice modern untuk pengembangan web yang aman dan cepat.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar