NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky
Options for Laravel

Čí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 value

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 kryptomien

Odoslaní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.