Laravel Pennant: Memperkenalkan Fitur Flag yang Powerful di Laravel 10

Galang Airlangga

Galang Airlangga

· 2 min read
Thumbnail

Laravel Pennant adalah package terbaru di Laravel 10 yang dikembangkan oleh tim inti Laravel. Laravel Pennant memberikan fitur flag yang memungkinkan kamu untuk mengaktifkan atau menonaktifkan fitur dalam aplikasi kamu.

Data fitur flag disimpan di dalam database dan dapat diakses baik di dalam blade maupun di dalam controller.

Instalasi Laravel Pennant sangatlah mudah, kamu dapat mengikuti langkah-langkah berikut:

composer require laravel/pennant

Jangan lupa untuk melakukan publish vendor dan migrasi setelah itu, karena ini akan menambahkan satu tabel baru yang diperlukan oleh Laravel Pennant:

php artisan vendor:publish --provider="Laravel\Pennant\PennantServiceProvider" 
php artisan migrate

Kamu dapat mendefinisikan fitur-fitur yang ingin kamu gunakan di dalam AppServiceProvider. Sebagai contoh, kita akan membuat fitur untuk memeriksa apakah pengguna dapat mengakses dashboard beta atau tidak. Berikut adalah contoh implementasinya:

// AppServiceProvider.php

use Laravel\Pennant\Facades\Feature;
use App\Models\User;

public function boot(): void {
    Feature::define('betaTester', 
        fn (User $user) => match (true) {
            $user->isTester() => true,
            default => false,  
        }
    ); 
}

Pada model User, kamu perlu menambahkan sebuah method untuk menentukan apakah pengguna ini adalah seorang tester atau bukan. Berikut adalah contoh implementasinya:

// User.php

public function isTester(){
    return $this->email === "tester@website.com";
}

Di dalam controller, kamu dapat menambahkan kode $user->feature->active('nama fitur') untuk memeriksa apakah fitur tersebut aktif atau tidak. Berikut adalah contoh implementasinya:

// UserController.php

use App\Models\User;
use Laravel\Pennant\Facades\Feature;

public function index($id){
    $user = User::find($id);
    
    if ($user->features()->active('betaTester')) {
        return "dashboard beta"; 
    }
    
    return "dashboard";
}

Terakhir, kamu dapat menambahkan rute baru untuk memeriksa fitur tersebut. Jika kamu memasukkan ID pengguna yang merupakan seorang tester, maka akan diarahkan ke dashboard beta. Jika tidak, maka akan diarahkan ke dashboard biasa. Berikut adalah contoh implementasinya di dalam web.php:

// web.php

use App\Http\Controllers\UserController;
use Illuminate\Support\Facades\Route;

Route::get('/check-user/{id}', [UserController::class,'index']);

Dengan menggunakan fitur flag yang disediakan oleh Laravel Pennant, kamu dapat dengan mudah menguji dan memperkenalkan fitur baru pada aplikasi kamu dengan lebih aman dan terkontrol.

Kamu juga dapat mengelola fitur-fitur tersebut dengan mudah, sehingga memudahkan kamu dalam mengelola dan memonitor fitur-fitur pada aplikasi kamu. Dengan Laravel Pennant, kamu dapat mengambil keputusan yang lebih baik berdasarkan fitur-fitur yang tersedia dalam aplikasi kamu, dan memberikan pengalaman yang lebih baik kepada pengguna kamu.

Galang Airlangga

Galang Airlangga

Copyright © 2023 Galang Airlangga. All rights reserved.
Made by Web3Templates· Github
Powered by Vercel