Pri používaní Laravel Pennant s Laravel Spark, hlavne kvôli tomu, ako interagujú príznaky a stavy predplatného (napríklad pokusy), existujú určité úvahy a potenciálne obmedzenia:
- Funkčné príznaky a skúšobné obdobia: Laravel Spark spravuje stavy predplatného vrátane pokusov, ktoré často vyžadujú povolenie alebo deaktiváciu funkcií na základe toho, či je používateľ v skúšobnom období alebo nie. Laravel Pennant dokáže dynamicky spracovať príznaky funkcií, ale jeho integrácia tak, aby odrážala skúšobné stavy, vyžaduje vlastnú logiku. Napríklad povolenie funkcií pri skúške a ich deaktivácii po vypršaní platnosti skúšky nie je automatické a musí sa explicitne implementovať v definíciách príznakov funkcií alebo rozsahov [2].
- Manipulácia s rozsahom a predvolené rozsahy: Pennant umožňuje definovanie predvoleného rozsahu pre kontroly funkcií (napr. Tím autentifikovaného používateľa). V Spark, kde sú predplatné a stavy používateľov ústredné, musíte zabezpečiť, aby rozsah použitý vlajkou správne odrážal stav predplatného alebo tím používateľa. Nesprávna konfigurácia tu môže viesť k nesprávnym hodnoteniam príznakov funkcií, najmä pre používateľov v skúške alebo s rôznymi úrovňami predplatného [1].
- Úvahy o výkone: Vlajka Caches Pennant Caches Výsledky výsledky v pamäti na žiadosť, ale môžu čeliť problémom s výkonom, ak sa kontroly funkcií vykonávajú opakovane v slučkách bez dychtivého načítania. Pretože aplikácie Spark často spracúvajú mnoho používateľov a stavy predplatného, nepoužívanie dychtivých možností načítania spoločnosti Pennant môže spôsobiť režijné náklady na databázu a spomalenie [1].
- Ovládače ukladania a úložiska: V predvolenom nastavení Pennant používa ovládač databázy na pretrvávanie stavov funkcií, ktoré dobre zapadajú do pretrvávajúcich používateľských údajov Spark. Ak však chcete, aby sa príznaky funkcií vypočítali čerstvé pri každej žiadosti (napr. Odrážanie zmien predplatného v reálnom čase), možno budete musieť zakázať ukladanie do vyrovnávacej pamäte alebo použiť ovládač poľa. Vyžaduje si to konfiguráciu a môže mať vplyv na výkon [7].
- Kompatibilita a aktualizácie: Laravel 11 vynechal podporu pre Laravel Spark Stripe 4.x, čo si vyžaduje aktualizáciu na iskru Stripe ^5.0. Aj keď nejde o obmedzenie priameho vlaku, ovplyvňuje celkovú kompatibilitu s aplikáciou a malo by sa brať do úvahy pri integrácii vlajky s iskrom na Laravel 11 alebo novšie [8].
-Žiadna vstavaná integrácia iskry: Laravel Pennant je balík vlajkových príznakov funkcií všeobecne a neposkytuje vstavanú integráciu špeciálne pre Laravel Spark. Preto musíte manuálne definovať, ako príznaky funkcií zodpovedajú stavom predplatného Spark, pokusom a fakturačným cyklom, ktoré môžu zvýšiť zložitosť.
Stručne povedané, zatiaľ čo Laravel Pennant sa dá použiť s Laravel Spark, vznikajú obmedzenia týkajúce sa potreby vlastnej logiky na synchronizáciu príznakov funkcií s predplatnými/skúšobnými stavmi, potenciálnymi problémami s výkonom bez dychtivého načítania a konfiguráciou rozsahov a ukladaním do vyrovnávacej pamäte, aby sa presne odrážal model používateľa Spark. Neexistuje žiadna bezproblémová integrácia, takže vývojári musia starostlivo navrhnúť interakciu medzi vlajkami funkcií Pennantu a správou predplatného Spark, aby sa predišlo nezrovnalostiam a prekážkam výkonu.
Citácie:
[1] https://laravel.com/docs/11.x/pennant
[2] https://github.com/laravel/pennant/issues/52
[3] https://www.reddit.com/r/laravel/comments/g8203f/what_are_the_problems_with_using_laravel_spark/
[4] https://stackoverflow.com/questions/78993755/why-pennant-feature-in-laravel-11-is-not--t- called
[5] https://github.com/laravel/pennant/issues
[6] https://rkyadav.blog/2018/12/30/scala-and-park-compatibility-isesus/
[7] https://stackoverflow.com/questions/77078816/how-to-dible-caching-for-laravel-pennant-in-db
[8] https://laravel.com/docs/11.x/upgrade
[9] https://wpwebinfotech.com/blog/laravel-pennant-guide/
[10] https://www.honeybadger.io/blog/a-guide-to-feature-flags-in-laravel/