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

Fasáda Options

Odporúčaným vstupným bodom je RoundlyConsulting\Options\Facades\Options. Zastupuje singleton OptionsManager a každá metóda prijme class-string nastavenia alebo registrovaný kľúč a voliteľne model vlastníka (pre globálne nastavenie ho vynechajte alebo odovzdajte null):

use RoundlyConsulting\Options\Facades\Options;

// Flat verbs: a class-string or a registered key, plus an optional owner
Options::get(ThemeOption::class, $user);
Options::set(ThemeOption::class, 'dark', $user);
Options::many([ThemeOption::class, LocaleOption::class], $user);
Options::all($user);
Options::export($team);
Options::import($json);

// Handles
Options::for($user)->set(ThemeOption::class, 'light');         // PendingOptions — one owner
Options::option(ThemeOption::class)->default();                // OptionContext — one option
Options::key('theme')->set('dark');                            // OptionContext by registered key
Options::group(AppearanceSettings::class)->for($user)->all();  // PendingGroup — a settings screen

// Registry, observers, access control, config bridge, cache
Options::register(['theme' => ThemeOption::class]);
Options::observe(ThemeOption::class, RecompileThemeListener::class);
Options::withoutAuthorization(fn () => Options::set(MaintenanceModeOption::class, true));
Options::overrides('app.name', AppNameOption::class);
Options::flushCache();

Všetky metódy

MetódaVraciaČo robí
get($option, $owner = null)mixedTypovaná hodnota, alebo default(), ak nie je nič uložené.
set($option, $value, $owner = null)voidOverí, pretypuje a uloží hodnotu.
has($option, $owner = null)boolČi je pre daný rozsah uložená hodnota.
forget($option, $owner = null) / reset(…)voidZmaže uloženú hodnotu; reset() je alias.
remember($option, Closure $callback, $owner = null)mixedUložená hodnota, alebo ju vypočíta, uloží a vráti.
resolve($option, $owner = null)OptionInterfaceInštancia nastavenia naviazaná na vlastníka.
many(array $options, $owner = null)arrayViac hodnôt naraz, s kľúčmi podľa toho, čo ste odovzdali.
setMany(array $values, $owner = null)voidViac zápisov naraz, všetko alebo nič: každá hodnota sa najprv autorizuje a overí, potom sa zapíšu v jednej transakcii.
all($owner = null)CollectionVšetky uložené hodnoty rozsahu, surovo key => value, jedným dopytom. Pri zapnutom riadení prístupu vynechá, čo používateľ čítať nesmie.
export($owner = null, bool $globalOnly = false)list<OptionPayload>Uložené nastavenia ako surové payloady — jedného vlastníka, všetky alebo iba globálne.
exportJson($owner = null, bool $globalOnly = false)stringexport() ako JSON pole riadkov.
import(array|string $payload)intVloží alebo aktualizuje z JSON, dekódovaných riadkov či OptionPayloadov; vráti počet.
for(?Model $owner)PendingOptionsHandle viazaný na vlastníka; for(null) je globálny rozsah.
option($option) / key($key)OptionContextHandle pre jedno nastavenie, cez class-string alebo registrovaný kľúč.
group($group, $owner = null)PendingGroupSkupina nastavení: all(), set(), definition(), options().
register(array $options) / registered()void / arrayPridá mapovanie key => trieda za behu; vráti register.
resolveClass($option)class-stringPrevedie kľúč alebo triedu na class-string nastavenia.
observe($option, $callback)voidPripojí cielený observer (closure alebo invokable trieda).
forgetObservers($option) / flushObservers()voidOdstráni observery jedného nastavenia alebo všetky.
actingAs(?Authenticatable $user, Closure $callback)mixedSpustí callback s autorizáciou za daného používateľa.
withoutAuthorization(Closure $callback)mixedSpustí callback bez riadenia prístupu.
overrides($configKey, $option)voidNamapuje kľúč config() na nastavenie a hneď ho aplikuje.
configOverrides() / applyConfigOverrides()array / voidAktívna mapa prepojenia s konfiguráciou; znova aplikuje všetky mapovania.
flushCache()voidVyprázdni pamäť requestu aj trvalú cache, na akomkoľvek úložisku.
fake()OptionsFakeIba na fasáde: nasadí zaznamenávajúci fake v pamäti (pozri Testovanie).

Metódy assert*() uvedené v docblocku fasády existujú až po zavolaní Options::fake() — pozri Testovanie.

Jeden manager za každou cestou

Fasáda, handly for() / option() / key() / group(), inštancie nastavení, trait HasOptions aj helper options() vedú do tých istých metód OptionsManager. Zvoľte zápis, ktorý sa vám číta najlepšie — validácia, casty, cache, autorizácia aj eventy fungujú všade rovnako:

// One OptionsManager behind every spelling — identical behaviour, all visible to Options::fake()
Options::set(ThemeOption::class, 'dark', $user);      // the facade
Options::for($user)->set(ThemeOption::class, 'dark'); // a handle
ThemeOption::for($user)->set('dark');                 // an option instance
$user->option(ThemeOption::class)->set('dark');       // the HasOptions trait
options()->set(ThemeOption::class, 'dark', $user);    // the helper

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.