Inilah Cara Menerapkan Fitur Flag Di Laravel - CRUDPRO

Inilah Cara Menerapkan Fitur Flag Di Laravel

Mengenal Apa Itu Markdown

Feature Flag bukanlah konsep baru. Anda mungkin telah memiliki flag feature yang efektif dalam aplikasi Anda. Salah satu karya yang paling sering dirujuk di Fitur Flags ialah karya Martin Fowler, yang ditulis pada tahun 2017.

Artikelnya menjelaskan matikan feature, juga dikenal sebagai bendera feature. Anda tidak disalahkan karena bingung melihat isinya dan tidak mengerti harus mulai dari mana.

Ada beberapa layanan cloud, tapi tidak mudah untuk memulai. Sebagai Pengembang Laravel yang rajin, saya memutuskan untuk membuat paket pada tahun 2019 untuk mengatasi banyak kesulitan itu sehingga Anda dapat dengan cepat mulai membuat aplikasi dengan flag feature.

Untuk memulai, silahkan kita bahas beberapa hal mendasar.

Apa itu bendera feature?

Bendera feature tidak berbeda dengan menambahkan fungsionalitas aplikasi yang lain. Bendera menyembunyikan fungsionalitas hingga siap untuk digunakan pelanggan. Terkadang ini juga dikenal sebagai feature toggle.

Apa yang membuat flag feature bermanfaat?

Bendera feature membantu Anda memisahkan pengembangan feature dan penerapan feature. Saat Anda membuat fitur dan menggunakan kontrol sumber, Anda harus menunggu untuk menggabungkan fungsi baru hingga semua sisi dari fungsi baru siap dirilis ke pelanggan dan pengunjung.

Ini menjadi masalah dan menyebabkan permintaan tarik yang besar dan kompleks. Kemudian saat Anda berpikir Anda siap untuk bergabung, permintaan tarik lainnya masuk lebih dulu, menyebabkan rangkaian konflik sulit yang perlu diselesaikan.

Itu membuat rencana Anda untuk diterapkan on time dalam risiko.

Untuk banyak pengembang, begitulah ada, kan? Anda membuat kode dan menggabungkannya saat sudah siap untuk dilihat mata.

Pola pikir ini, walau bisa dimengerti, perlu direvisi untuk membangun aplikasi web modern.

Bendera feature bisa mengubahnya. Di saat yang sama, mereka bawa kerumitan tambahan selesai Anda mencoba menerapkannya dalam skala besar. Ini ialah alasan saya membuat Flag Feature untuk Laravel untuk menghapus beberapa pekerjaan awal yang diperlukan untuk mengelit kerumitan itu.

Menggunakan Bendera Feature untuk Laravel

Saya membuat paket untuk ini pada tahun 2019. Anda bisa mengelola flag feature dengan sangat cepat memakai konfigurasi Laravel. Meskipun demikian, mungkin susah untuk mengelola dan kerap kali mengubah variabel lingkungan aplikasi untuk memengaruhi konfigurasi, yang memiliki arti Anda harus menjalankan penerapan baru meskipun kodenya sama.

Sebagai tukarnya, dengan menggunakan paket Laravel Fitur Flags, kita bisa mengonfigurasi beberapa hal yang bergantung pada database dan kembali ke file komposisi. Paket ini menyediakan API untuk memudahkan pertukaran mekanisme persistensi dengan sedikit keributan.

Instalasi dan Konfigurasi

Pertama, kami akan mengambil program default dengan halaman Selamat Tiba Laravel yang telah diketahui. Kami ingin menyembunyikan nomor versi aplikasi di balik bendera. Lakukan ini memungkinkan kami untuk mengubah penyebaran informasi penting ini hanya jika diperlukan

Untuk memulai, kami akan menginstal paket menggunakan komposer:

composer require ylsideas/feature-flags

Setelah ini, kita perlu menerbitkan beberapa file, dan karena kita berniat untuk menyimpan flag kita di database dan file konfigurasi, kita perlu membuat migrasi untuk tabel flag kita dan file .features.php. Kita dapat melakukannya dengan perintah berikut:

# install the config to config/features.php
php artisan vendor:publish — provider=”YlsIdeas\FeatureFlags\FeatureFlagsServiceProvider” — tag=config
# install .features.php
php artisan vendor:publish — provider=”YlsIdeas\FeatureFlags\FeatureFlagsServiceProvider” — tag=inmemory-config
# install a migration to database/migrations
php artisan vendor:publish — provider=”YlsIdeas\FeatureFlags\FeatureFlagsServiceProvider” — tag=features-migration

Pertama mari kita edit file konfigurasi config/features.php kita dan periksa apakah pipelinenya adalah sebagai berikut:

‘pipeline’ => [‘database’, ‘in_memory’],

Dengan memilih gateway berikut, kami memberi tahu pipeline untuk melihat database dan kemudian file .features.php sebagai cadangan.

Sekarang kita perlu memeriksa setiap gateway. Untuk gateway dalam memori, pengaturannya harus sebagai berikut:

‘in_memory’ => [
 ‘file’ => env(‘FEATURE_FLAG_IN_MEMORY_FILE’, ‘.features.php’),
 ‘driver’ => ‘in_memory’,
],

Kami akan mengubah gateway database dan menyertakan beberapa caching. Cache 2 menit sudah cukup, yaitu 120 detik. Ini berarti bahwa jika suatu fitur diakses beberapa kali dalam jangka waktu tersebut, hasil yang sama akan dikembalikan, menyimpan basis data kita dari permintaan tambahan untuk dijalankan.

‘database’ => [
 ‘driver’ =>’ database’,
 ‘cache’ => [
 ‘ttl’ => 120,
 ],
 ‘connection’ => env(‘FEATURE_FLAG_DATABASE_CONNECTION’),
 ‘table’ => env(‘FEATURE_FLAG_DATABASE_TABLE’, ‘features’),

Sebagai cadangan kami, kami akan menambahkan nilai flag default ke konfigurasi .features.php kami.

<?php

use Illuminate\Contracts\Foundation\Application;

/**
 * @returns array<string, bool>
 */
return static function (Application $app): array {
 return [
 ‘laravel.version’ => true,
 ];
};

Ini adalah nilai-nilai yang dapat kita komit ke dalam repositori kita sebagai default.

Kami harus segera menjalankan migrasi untuk database. Jika Anda bekerja dengan aplikasi Laravel baru, kami dapat menggunakan SQLite.

php artisan migrate

Mari tambahkan bendera

Sekarang untuk menyederhanakannya, mari tambahkan bendera awal kita. Untuk ini, kami akan membuka file welcome.blade.php dan mengedit bagian yang menampilkan versi Laravel.

Kami dapat membungkus versi dalam arahan blade yang disediakan oleh paket.

@feature(‘laravel.version’)
<div class=”ml-4 text-center text-sm text-gray-500 sm:text-right sm:ml-0">
 Laravel v{{ Illuminate\Foundation\Application::VERSION }} (PHP v{{ PHP_VERSION }})
</div>
@endfeature

Melakukannya berarti sisi itu hanya akan ditampilkan saat feature laravel.version diaktifkan.

Mari lakukan server menggunakan yang berikut ini :

php artisan serve

Dan sekarang, kita dapat masuk ke halaman Selamat Tiba default untuk melihat apa versinya hilang. Kesuksesan!

Sekarang kita bisa menjalankan perintah artisan berikut, sekali lagi ada dari paket dan lihat apa itu memengaruhi halaman Selamat Tiba.

php artisan feature:on database laravel.version

Kita mungkin harus menunggu sebentar untuk melihat hasilnya.

Kita hanya perlu menjalankan perintah dengan nilai off dan menonaktifkan flag agar tidak berjalan. Sekali lagi ini mungkin membutuhkan waktu hingga dua menit untuk ditampilkan dan diubah.

php artisan feature:off database laravel.version

Kesimpulan

Bendera fitur mungkin tidak diperlukan bagi mereka yang mengerjakan produk dengan satu atau dua orang lainnya, tetapi lebih dari itu, mereka dapat menjadi alat penting dalam membantu Anda menghadirkan fitur tepat waktu.

Ini hanya menggores permukaan. Kekuatan sebenarnya dimulai saat Anda dapat mulai membuat bendera yang akan dinyalakan dan dimatikan per pengguna atau tim. Setelah kita mencapai titik ini, kita perlu mulai menggunakan gateway gerbang dalam paket atau membuat gateway khusus untuk Feature Flags untuk Laravel.

Hal ini membuat saya berbicara tentang langkah selanjutnya dalam perjalanan saya untuk membantu orang lain membangun dengan flag fitur, paket premium untuk mendukung pengelolaan penerapan dan peluncuran fitur ke pengguna tertentu, dan banyak lagi.

Jika Anda ingin melihat kode yang sudah selesai dari artikel ini, Anda selalu dapat melihat demo di GitHub. Anda dapat menemukan repositori Flag Fitur untuk Laravel di GitHub dan situs web dokumentasi khusus untuk FFfL.

Saya Peter Fox, pengembang perangkat lunak Inggris dengan pengalaman satu dekade dengan PHP dan Laravel. Saya sudah mulai mengerjakan proyek baru. Flagfox untuk Laravel akan dibangun di atas pekerjaan saya yang sudah mapan membuat paket sumber terbuka untuk membantu pengembang menambahkan tanda fitur ke aplikasi mereka. Saat ini kami memiliki daftar tunggu bagi mereka yang tertarik untuk mempelajari lebih lanjut.