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/Modelsuntuk semua Eloquent model.app/Http/Controllers/Apiuntuk controller API.routes/api.phphanya berisi route yang menggunakanauth:sanctum.resources/js/Pagesmenampung komponen Inertia.tests/Featuremenambahkan 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
- Set
APP_ENV=productiondanAPP_DEBUG=false. - Jalankan
composer install --optimize-autoloader --no-dev. - Build assets:
npm run build(Vite menghasilkan manifest). - Cache config & routes:
php artisan config:cache && php artisan route:cache. - 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