Taip, „Laravel Pennant“ su „Laravel Spark“ įmanoma naudoti „SaaS“ programoje. Čia pateiktas išsamus paaiškinimas:
** „Laravel Pennant“ apžvalga
„Laravel Pennant“ yra pirmosios šalies, lengvos funkcijų vėliavos paketas, skirtas „Laravel“ programoms. Tai leidžia palaipsniui išleisti naujas funkcijas, atlikti A/B testavimą ir valdyti prieigą prie funkcijų, naudojant minimalią sąranką. „Vinnant“ palaiko funkcijų vėliavos verčių saugojimą duomenų bazėje ar atmintyje ir leidžia vartotojams, komandoms ar kitiems modeliams apimti vėliavas, o tai yra būtina „SaaS“ programoms, turinčioms daugialypę nuomininko ar prenumeratos funkcijas [1] [3] [5] [7].
** „Laravel Spark“ apžvalga
„Laravel Spark“ yra „SaaS“ starterio rinkinys „Laravel“, kuris suteikia prenumeratos atsiskaitymą, komandos valdymą ir kitas „SaaS“ specifines funkcijas. Tai tvarko vartotojų prenumeratas, bandymus ir atsiskaitymo integraciją, kurios yra bendras „SaaS“ programų susirūpinimas [4].
** Integracijos galimybės
- Kadangi „Laravel Pennant“ palaiko „Scoping“ funkcijų vėliavas iškalbingiems modeliams, tokiems kaip vartotojai ar komandos, galite panaudoti „Spark“ vartotojo ir prenumeratos modelius, kad įjungtumėte ar išjungtumėte funkcijas, pagrįstas prenumeratos būsena, bandomuoju laikotarpiu ar narių komandai.
- „Pennant“ leidžia apibrėžti pasirinktinę logiką, kai aktyvi funkcija yra aktyvi, todėl galite sukurti funkcijų apibrėžimus, kurie patikrina, ar vartotojas yra išbandytas, turi tam tikrą prenumeratos planą arba priklauso konkrečiai „Spark“ valdoma komandai [1] [2]. Pvz., Galite įgalinti funkciją tik vartotojams šiuo metu bandomojo laikotarpio metu arba pagal „Premium“ planą.
-„Pennant“ duomenų bazės remiama saugykla ir galimybė apimti vėliavas modeliams, gerai tinka „Spark“ duomenų bazių prenumeratos ir komandos valdymo sistemai, leidžiančiai nuolatiniam ir granuliamam kontroliuoti funkcijų prieinamumą.
- Galite pratęsti „Pennant“ naudodami pasirinktines tvarkykles arba įdiegti „Spark“ vartotojo ar komandos modelių „FeatureScopable“ sutartį, kad pritaikytumėte, kaip funkcijų vėliavos yra išspręstos ir saugomos [1].
** Praktinio naudojimo atvejai
- Įgalinkite eksperimentines funkcijas tik „Spark“ vartotojams, kurie bando, ir automatiškai išjunkite jas, kai bandymas baigiasi.
- Palaipsniui išleiskite naujas funkcijas mokant klientams ar konkrečioms prenumeratos pakopoms.
- Norėdami gauti prieigą prie naujų atsiskaitymo ar komandos valdymo funkcijų, kurias pateikė „Spark“, naudokite funkcijų vėliavas.
- Atlikite UI komponentų ar darbo eigų A/B testavimą skirtingoms „Spark“ valdomoms vartotojų segmentams, saugodami vėliavos būsenas sesijoje ar duomenų bazėje per venį [2] [8].
** Įgyvendinimo veiksmai
1. Įdiekite „Laravel Pennant“ į savo „Laravel Spark“ programą naudodami kompozitorių.
2. Paskelbkite „Pennant“ konfigūracijos ir migracijos failus, tada paleiskite migracijas, kad sukurtumėte lentelę funkcijų.
3. Apibrėžkite savo funkcijų vėliavas vėliavoje, naudodami uždarymą ar klases, kurios tikrina „Spark“ vartotojo prenumeratą ar bandymo būseną, kad nustatytumėte, ar funkcija yra aktyvi.
4. Naudokite „Pennant“ funkciją :: Aktyvus („funkcijų vardas“, $ vartotojas) „Metodas savo programos kode, tarpinėje programinėje įrangoje ar rodiniuose, kad sąlygiškai įgalintumėte funkcijas.
5. Pasirinktinai įdiegkite „Spark“ vartotojo ar komandos modelių „FeatureCpable“ sąsają, kad pritaikytumėte funkcijų vėliavos apimtį.
6. Prireikus valdykite funkcijų vėliavas dinamiškai naudodami duomenų bazę arba pasirinktines tvarkykles.
Apibendrinant galima pasakyti, kad „Laravel Pennant“ lankstumas ir modelio apimties galimybės leidžia tinkamai integruoti su „Laravel Spark“, kad būtų galima pažymėti funkcijas „SaaS“ programose. Šis derinys leidžia jums valdyti funkcijų prieinamumą, remiantis prenumeratos planais, bandymais ir narystės komandomis, įgalinant saugius ir papildomus funkcijų kaupimą, pritaikytą jūsų „SaaS“ verslo logikai [1] [2] [7].
Citatos:
[1] https://laravel.com/docs/11.x/pennant
[2] https://github.com/laravel/pennant/issues/52
[3] https://laravel-news.com/feature-flags-with-laravel-pennant
[4] https://spark.laravel.com/docs/spark-stripe/upgrade
[5] https://www.youtube.com/watch?v=ejlaaehspwy
[6] https://www.binarcode.com/blog/feature-flaggin-laravel
[7] https://www.honeybadger.io/blog/a-guide-tofeature-flags-in-laravel/
[8] https://stackoverflow.com/questions/77751003/laravel-pennant-store-against-session-for-a-b-testing
[9] https://posthog.com/tutorials/laravel-feature-flags
[10] https://dev.to/saurabh-dhariwal/how-to-manage-feature-flags-with-laravel-pennant-in-2024-1Phb