Čítanie a zápis
Hlavným vstupným bodom je fasáda Options (za ňou stojí OptionsManager). Každá metóda prijme class-string nastavenia alebo registrovaný kľúč a voliteľne model vlastníka:
use RoundlyConsulting\Options\Facades\Options;
Options::resolve(ThemeOption::class); // OptionInterface
Options::get(ThemeOption::class); // current value (or the default)
Options::set(ThemeOption::class, 'dark'); // persist a value
Options::get(ThemeOption::class, $user); // scoped read
Options::set(ThemeOption::class, 'light', $user); // scoped write
Options::has(ThemeOption::class); // is a value stored?
Options::forget(ThemeOption::class); // delete (revert to default)
Options::reset(ThemeOption::class); // alias of forget()- get() vráti uloženú hodnotu pretypovanú cez castAs(), alebo default(), ak pre daný rozsah nie je nič uložené — vždy v type castu, aj hneď po set().
- set() overí prístup, overí hodnotu podľa rules(), serializuje ju cez jej cast, vloží či aktualizuje riadok rozsahu, uloží do cache surovú uloženú hodnotu a spustí OptionSet s pretypovanou hodnotou.
- has() vráti true, len ak riadok existuje — započíta sa aj uložená hodnota rovná predvolenej.
- forget() riadok soft-zmaže, vyčistí obe vrstvy cache a spustí OptionForgotten; reset() je alias.
- resolve() vráti inštanciu nastavenia naviazanú na vlastníka.
Remember
remember() vráti uloženú hodnotu, ak existuje; inak zavolá closure, výsledok uloží a vráti to, čo sa uložilo, po caste — v rovnakom type ako každé ďalšie volanie. Praktické pre generované tajomstvá:
use Illuminate\Support\Str;
use RoundlyConsulting\Options\Facades\Options;
// Stored value if there is one; otherwise store the closure result and return it.
$secret = Options::remember(WebhookSecretOption::class, fn () => Str::random(40));
// Scoped to an owner:
$secret = Options::remember(WebhookSecretOption::class, fn () => Str::random(40), $team);Bez návratu na globálnu hodnotu
Rozsahy sú nezávislé. Ak pre vlastníka nie je nič uložené, get() vráti default() nastavenia — nie globálnu hodnotu. Ak majú vlastníci dediť celoaplikačnú hodnotu, overte najprv rozsah vlastníka:
$theme = Options::has(ThemeOption::class, $user)
? Options::get(ThemeOption::class, $user)
: Options::get(ThemeOption::class); // fall back to the global valuePrejavte 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.