Panduan lengkap step‑by‑step untuk menginstal Laravel 11 terbaru, mengkonfigurasi Vite, menambahkan Breeze UI, mengamankan API dengan Sanctum, serta menyiapkan testing environment pada tahun 2026.
1. Prerequisites
Pastikan Anda memiliki:
- PHP >= 8.2
- Composer 2.7+
- Node.js >= 20 (LTS)
- Database MySQL 8 atau PostgreSQL 15
- Git
2. Instalasi Laravel 11
composer create-project laravel/laravel:^11.0 my-app
cd my-app
Perintah di atas mengunduh Laravel 11 dengan semua dependensi default.
3. Setup Vite (Asset Bundler bawaan)
- Instalasi dependensi npm:
npm install
npm run dev
Laravel 11 sudah mengonfigurasi vite.config.js. Pastikan resources/js/app.js dan resources/css/app.css ter‑import di resources/views/welcome.blade.php dengan @vite:
<!-- resources/views/welcome.blade.php -->
@vite(['resources/css/app.css', 'resources/js/app.js'])
4. Instalasi Laravel Breeze (Starter kit UI)
composer require laravel/breeze --dev
php artisan breeze:install vue
npm install && npm run dev
Perintah di atas menyiapkan autentikasi berbasis Vue 3, TailwindCSS, dan Vite. Jalankan migrasi:
php artisan migrate
5. Konfigurasi Laravel Sanctum untuk API Token
- Instalasi paket:
composer require laravel/sanctum
- Publish konfigurasi & migration:
php artisan vendor:publish --provider="Laravel\Sanctum\SanctumServiceProvider"
php artisan migrate
- Tambahkan middleware ke
app/Http/Kernel.php:
'api' => [
\Laravel\Sanctum\Http\Middleware\EnsureFrontendRequestsAreStateful::class,
'throttle:api',
\Illuminate\Routing\Middleware\SubstituteBindings::class,
],
- Contoh endpoint token:
use Illuminate\Http\Request;
use App\Models\User;
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;
});
Gunakan token ini pada header Authorization: Bearer <token> untuk mengakses route yang dilindungi auth:sanctum.
6. Menambahkan Testing Environment
- Instal PHPUnit dan Pest (opsional):
composer require --dev pestphp/pest pestphp/pest-plugin-laravel
- Contoh test fitur login:
/**
* @test
*/
public function user_can_login()
{
$user = User::factory()->create(['password' => bcrypt('secret')]);
$response = $this->post('/login', [
'email' => $user->email,
'password' => 'secret',
]);
$response->assertRedirect('/home');
$this->assertAuthenticatedAs($user);
}
7. Best Practice Modern (2026)
- Environment variables: Simpan semua secret di
.envdan gunakanenv()hanya di config files. - Docker development: Gunakan
laravel/sailuntuk container lokal. Contoh:
curl -s "https://laravel.build/my-app?with=mysql,redis" | bash
./vendor/bin/sail up -d
- Code style: Aktifkan
phpcsdengan standar PSR‑12 + Laravel Pint. - CI/CD: Tambahkan pipeline GitHub Actions yang menjalankan
php artisan test,npm run lint, danphpstan. - Cache & Queues: Gunakan Redis sebagai driver default, konfigurasi di
.env:CACHE_DRIVER=redis QUEUE_CONNECTION=redis
8. Deploy ke Production
- Build assets:
npm run build
- Optimasi autoload:
composer install --optimize-autoloader --no-dev
php artisan config:cache
php artisan route:cache
php artisan view:cache
- Set proper file permissions dan restart queue workers.
Dengan mengikuti langkah di atas, aplikasi Laravel 11 Anda siap untuk produksi dengan keamanan API, UI modern, dan pipeline DevOps terkini.
Laravel 11 memberikan fondasi modern yang terintegrasi dengan Vite, Breeze, dan Sanctum. Mengikuti best practice 2026—Docker, CI/CD, dan caching—memastikan aplikasi Anda scalable, aman, dan mudah dipelihara. Ikuti tutorial ini untuk memulai proyek produksi yang siap bersaing di era Web Development terkini.
Panduan lengkap setup Laravel 11 dengan Vite, Breeze, Sanctum, testing, dan best practice modern tahun 2026. Termasuk langkah instalasi, konfigurasi, contoh kode, dan deployment.
Laravel,PHP Framework,Web Development
#Laravel #LaravelIndonesia #PHP #WebDev #Backend
Tidak ada komentar:
Posting Komentar