Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka Laravel viiri tallentaa ja hakee ominaisuuksien lippuarvoja


Kuinka Laravel viiri tallentaa ja hakee ominaisuuksien lippuarvoja


Laravel Villat -varastot ja hakee ominaisuuksien lippuarvot käyttämällä joustavaa tallennusjärjestelmää, joka tukee kahta pääohjainta: Muistin sisäinen taulukon ohjain ja pysyvä tietokanta-ohjain.

Säilytysmekanismit:

- Taulukon ohjain: Tämä ohjain tallentaa ratkaisivat ominaisuuksien lipun arvot muistilehdessä. Se on nopea, mutta ohimenevä, mikä tarkoittaa, että tallennettujen ominaisuuksien lipun arvot ovat olemassa vain nykyisen pyynnön elinkaaren aikana ja kadonneet myöhemmin. Tämä on hyödyllistä yksinkertaisissa tai väliaikaisissa käyttötapauksissa, joissa pysyvyyttä ei tarvita.

- Tietokantaohjain (oletus): Viiri voi säilyttää ominaisuuslippu -arvot relaatiotietokannassa, erityisesti "ominaisuuksien" taulukossa, joka on luotu suorittamalla Pennantin siirrot. Tämä ohjain tallentaa ratkaistu ominaisuuslippuarvot jatkuvasti, jolloin arvot voidaan jakaa useiden pyyntöjen ja palvelimien välillä. Se on ihanteellinen sovelluksille, jotka toimivat useilla palvelimilla tai palvelimattomilla ympäristöillä. Tietokantaohjain käyttää myös muistin välimuistia yhden pyynnön aikana välttääkseen saman ominaisuuden lipun toistuvien tietokantakyselyjen välttämiseksi, mikä parantaa suorituskykyä [1] [2] [5].

Kuinka ominaisuusliput on määritelty ja ratkaistu:

- Ominaisuusliput määritetään sulkemisilla, jotka sisältävät logiikan sen määrittämiseksi, onko ominaisuus aktiivinen vai ei. Nämä sulkemiset voivat hyväksyä parametrit, kuten todennettu käyttäjä, mikä mahdollistaa laajuuden liput (esim. Ominaisuuden mahdollistaminen vain järjestelmänvalvojan käyttäjille).

- Kun ominaisuuslippu tarkistetaan ensin tietylle laajuudelle (kuten käyttäjälle), Pastot suorittaa sulkemisen ominaisuuden arvon ratkaisemiseksi. Tämä ratkaistu arvo tallennetaan sitten määritettyyn tallennusohjaukseen (taulukko tai tietokanta).

- Seuraavissa tarkistuksissa saman ominaisuuden ja laajuuden tarkistuksessa Pennant hakee tallennetun arvon tallennusohjaimesta sen sijaan, että se optimoi suorituskyvyn [2] [3].

Ominaisuuden lipun arvot:

-Voit hakea yhden ominaisuuden lipun arvon menetelmillä, kuten `Ominaisuus :: Active ('Feature-nimi')`, tarkistaa, onko se käytössä (boolean) vai `Feature :: arvo ('ominaisuuden nimi')` saadaksesi arvonsa, joka voi olla boolean tai mikä tahansa muu tietotyyppi (rikkaat arvot liput).

- Viiri tarjoaa myös menetelmiä useiden ominaisuuksien lippujen arvojen hakemiseksi kerralla, kuten `Ominaisuus :: arvot (['Feature1', 'Feature2'])` tai `Feature :: All ()` `saada kaikki määritellyt ominaisuudet tietylle laajuudelle.

- Ominaisuusluokat voidaan löytää ja rekisteröityä dynaamisesti sen varmistamiseksi, että ne sisältyvät kaikki ominaisuusliput [1] [2].

Yhteenveto:

Laravel Villat ratkaisee ominaisuuksien lippuarvot suorittamalla käyttäjän määrittelemät logiikan sulkemiset ja tallentaa sitten nämä erotetut arvot joko väliaikaisesti muistissa olevassa taulukossa tai jatkuvasti tietokantataulukossa. Tämä tallennusmekanismi antaa viirille mahdollisuuden hakea tehokkaasti ominaisuuslipputiloja seuraavissa pyynnöissä laskematta uudelleen, tukemaan sekä yksinkertaisia ​​että monimutkaisia ​​käyttötapauksia, mukaan lukien laajuudet käyttäjää kohti. Oletus- ja suositeltava lähestymistapa on käyttää tietokannan ohjainta pysyvään tallennustilaan, etenkin monen palvelimen tai tuotantoympäristöissä, kun taas taulukkoohjain sopii ohimeneviin tai testausskenaarioihin [1] [2] [5].

Viittaukset:
[1] https://laravel.com/docs/11.x/pennant
[2] https://www.honeybadger.io/blog/a-guide-to-feature-flags-in-laravel/
.
[4] https://redberry.international/laravel-pennant-feature-flagging-made-easy/
[5] https://wpwebinfotech.com/blog/laravel-pennant-guide/
.
.
[8] https://laracasts.com/series/whats-new-in-laravel-10/episodes/5