Open source
Options for Laravel
composer require roundly-consulting/options-for-laravelPrehľad
Natívna vrstva nastavení pre Laravel. Každé nastavenie je malá trieda, ktorá deklaruje kľúč, predvolenú hodnotu a cast — a podľa potreby aj šifrovanie, validáciu a pravidlá prístupu. Hodnoty sa ukladajú do jednej tabuľky options, buď globálne, alebo pre ľubovoľný Eloquent model: používateľa, tím, tenanta. Čítania sa pamätajú počas requestu či jobu vo fronte a voliteľne aj v cache naprieč requestami, zápisy obe vrstvy udržiavajú v súlade a spúšťajú eventy a prepojenie s konfiguráciou umožní, aby uložené hodnoty pri štarte prepísali config(). Licencia MIT, postavené len na Laraveli a vlastnom package toolkite od Roundly.
Čo získate
Globálne alebo pre vlastníka
Jedna tabuľka options pre celoaplikačné hodnoty aj hodnoty viazané na akýkoľvek Eloquent model — používateľa, tím, tenanta.
Typované casty a šifrovanie
Ľubovoľný cast Laravelu, vlastný CastsAttributes, cast pre backed enumy a šifrovanie uložených hodnôt pre každé nastavenie zvlášť.
Dvojvrstvová cache
Pamäť v rámci requestu plus voliteľná trvalá cache, ktorú vyprázdnite na akomkoľvek úložisku. Obe držia surovú uloženú hodnotu a zápisy ich udržiavajú v súlade.
Skupiny pre obrazovky nastavení
Zoskupte nastavenia do skupín, ktorých definition() dodá vášmu UI popisky, nápovedy, sekcie, poradie, typy aj aktuálne hodnoty.
Voliteľné riadenie prístupu
Hooky na čítanie a zápis pre každé nastavenie, voliteľné Gate abilities, actingAs() a withoutAuthorization() — vypnuté, kým ich nezapnete.
Prepojenie s konfiguráciou, eventy a CLI
Uložené nastavenia prepíšu config() bez nového nasadenia. K tomu eventy OptionSet a OptionForgotten, cielené observery a osem Artisan príkazov.
Fasáda, DI alebo akcie
Použite fasádu Options, vložte si OptionsManager alebo volajte akcie na export a import — Options::fake() zaznamená každý zápis bez ohľadu na to, odkiaľ prišiel.
Dokumentácia
Inštalácia
Inštalácia cez Composer, publikovanie a spustenie migrácie tabuľky options a voliteľne publikovanie konfigurácie na úpravu registra alebo výmenu modelu.
Konfigurácia
Každý konfiguračný kľúč a jeho predvolená hodnota — model, typ kľúča vlastníkov, register, cache, eventy, skupiny, autorizácia a config().
Databázová schéma a typ kľúča
Jediná tabuľka options, ako key_type určuje stĺpce vlastníka pre kľúče bigint, UUID či ULID a ako nasadiť vlastný model.
Definovanie nastavení
Zdeďte BaseOption a deklarujte kľúč, predvolenú hodnotu, cast, šifrovanie, pravidlá a prezentáciu — alebo použite make:option.
Fasáda Options
Celé API fasády Options — ploché slovesá, handly for(), option(), key() a group(), register, observery, riadenie prístupu a cache.
DI a akcie
Bez fasády: vložte si OptionsManager a máte to isté API bez statických volaní, alebo volajte akcie na export a import priamo.
Čítanie a zápis
Čítajte, zapisujte, overujte, mažte a zapamätajte si hodnoty nastavení cez fasádu Options — globálne alebo pre vlastníka.
Fluent API a hromadné operácie
Reťazte volania nad jedným nastavením, cez for() obmedzte dávku na vlastníka a čítajte či zapisujte viac nastavení naraz.
Vlastníci a trait HasOptions
Viažte hodnoty na akýkoľvek Eloquent model — používateľov, tímy, tenantov — a čítajte ich priamo z modelu cez trait HasOptions.
Helpery, register a Blade
Helpery options() a setting(), krátke textové kľúče cez register a Blade direktíva @option s escapovaním výstupu.
Casty a šifrovanie
Pretypujte hodnoty ľubovoľným castom Laravelu, vlastným CastsAttributes či castom pre enumy a citlivé nastavenia šifrujte.
Validácia
Vráťte z rules() validačné pravidlá Laravelu a každý zápis sa overí skôr, než sa pretypuje či uloží.
Eventy
OptionSet, OptionForgotten a voliteľný OptionResolved — čo nesú, kedy sa spúšťajú a ako ich vypnúť.
Observery
Reagujte na zmenu jedného konkrétneho nastavenia — closures alebo invokable triedy, spúšťané pri set a forget v poradí registrácie.
Skupiny nastavení
Zoskupte súvisiace nastavenia do skupiny, ktorá jedným volaním načíta, uloží a opíše celú obrazovku nastavení.
Riadenie prístupu
Voliteľné pravidlá čítania a zápisu pre každé nastavenie, Gate abilities, konanie za používateľa, obídenie pre systémové joby a autorizácia v CLI.
Prepojenie s konfiguráciou
Nechajte uložené nastavenia pri štarte prepísať hodnoty config() — odosielateľa e-mailov či názov aplikácie meňte z databázy.
Kešovanie
Pamäť v rámci requestu a trvalá cache — čo držia, ako ich zápisy udržiavajú aktuálne a ako vyprázdnenie funguje na každom úložisku.
Import a export
Prenášajte nastavenia medzi prostrediami alebo seedujte predvolené hodnoty cez Options::export(), exportJson() a import() či zodpovedajúce príkazy.
Artisan príkazy
Osem príkazov na generovanie nastavení a skupín, výpis, čítanie a zápis hodnôt, čistenie cache a export či import.
Testovanie
Options::fake() zaznamená každý zápis v pamäti a ponúka šesť asercií; alebo testujte proti skutočnej tabuľke so stavmi factory.
Výnimky
Všetky výnimky balíka, kedy vznikajú, a výnimky frameworku, s ktorými sa môžete stretnúť.
Požiadavky
PHP 8.4+, Laravel 12 alebo 13 a package toolkit od Roundly, ktorý Composer nainštaluje za vás.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.