Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Jak je Laravel Pennant Store and Retrieve Hodnoty vlajky


Jak je Laravel Pennant Store and Retrieve Hodnoty vlajky


Laravel Pennant Stores a načítá hodnoty příznaku funkcí pomocí flexibilního úložného systému, který podporuje dva hlavní ovladače: ovladač pole v paměti a přetrvávající ovladač databáze.

Skladovací mechanismy:

- Řidič pole: Tento ovladač ukládá vyřešené hodnoty příznaku funkcí v pole v paměti. Je to rychlé, ale přechodné, což znamená, že hodnoty příznaku uložených funkcí existují pouze během aktuálního životního cyklu žádosti a poté se ztratí. To je užitečné pro jednoduché nebo dočasné případy použití, kdy není vyžadována vytrvalost.

- ovladač databáze (výchozí): Pennant může přetrvávat hodnoty příznaku v relační databázi, konkrétně v tabulce „Funkce“ vytvořená spuštěním migrace Pennant. Tento ovladač trvale ukládá hodnoty příznaku vyřešených funkcí, což umožňuje sdílení hodnot na více požadavcích a serverech. Je ideální pro aplikace spuštěné na více serverech nebo v prostředí bez serverů. Řidič databáze také používá mezipaměť v paměti během jediného požadavku, aby se zabránilo opakovaným dotazům na databázi pro stejný příznak funkcí, což zlepšilo výkon [1] [2] [5].

Jak jsou definovány a vyřešeny příznaky funkcí:

- Příznaky prvků jsou definovány pomocí uzávěrů, které obsahují logiku, aby se určilo, zda je funkce aktivní nebo ne. Tato uzavření mohou přijímat parametry, jako je ověřený uživatel, což umožňuje příznaky s rozsazenou funkcí (např. Umožnění funkce pouze pro uživatele admin).

- Když je příznak funkce poprvé zkontrolován daný rozsah (například uživatel), Pennant provádí uzavření a vyřeší hodnotu funkce. Tato vyřešená hodnota je poté uložena v konfigurovaném ovladači úložiště (pole nebo databáze).

- Při následných kontrolách stejný prvek a rozsah načte Pennant uloženou hodnotu z ovladače úložiště místo přepočítání, což optimalizuje výkon [2] [3].

Získání hodnot vlajky funkce:

-Hodnota jednoho příznaku prvku můžete získat pomocí metod jako `Funkce :: Active ('Feature-Name')` Chcete-li zkontrolovat, zda je povoleno (boolean) nebo `Funkce :: hodnota („ název funkce “)`, aby získal jeho hodnotu, což může být booleovské nebo jiné datové typy (příznaky bohaté hodnoty).

- Pennant také poskytuje metody k načtení více hodnot příznaku funkcí najednou, například `Funkce :: hodnoty (['Funkce1', 'Funkce2'])` nebo `Funkce :: all ()` Získat všechny definované funkce pro daný rozsah.

- Třídy prvků lze dynamicky objevit a registrovat, aby se zajistilo, že jsou zahrnuty při získávání všech příznaků prvků [1] [2].

Shrnutí:

Laravel Pennant řeší hodnoty příznaku funkcí spuštěním uzávěr logických logických definovaných uživatelem a poté tyto hodnoty ukládá dočasně do pole v paměti nebo trvale v databázové tabulce. Tento úložný mechanismus umožňuje Pennant efektivně načíst stavy vlajky prvků na následných požadavcích bez přepočtu a podporovat jednoduché i složité případy použití, včetně rozsazených příznaků na uživatele. Výchozí a doporučený přístup je používat ovladač databáze pro přetrvávající úložiště, zejména ve více serveru nebo produkčním prostředí, zatímco ovladač pole vyhovuje přechodným nebo testovacím scénářům [1] [2] [5].

Citace:
[1] https://laravel.com/docs/11.x/pennant
[2] https://www.honeybadger.io/blog/a-guide-to-feature-flags-in-laravel/
[3] https://www.reddit.com/r/laravel/comments/10yto7q/laravel_pennant_simple_and_lightweight_feature/
[4] https://redberry.international/laravel-pennant-feature-flagging-made-asy/
[5] https://wpwebinfotech.com/blog/laravel-pennant-guide/
[6] https://dev.to/saurabh-dhariwal/how-to-manage-feature-flags-with-laravel-nant-in-2024-1phb
[7] https://stackoverflow.com/questions/77751003/laravel-pannant-tore-against-session-for-a-b-test
[8] https://laracasts.com/series/whats-new-in-laravel-10/episodes/5