Helpery, register a Blade
Bežné prípady pokryjú dva globálne helpery. Oba sú chránené cez function_exists, takže ich vaša aplikácia môže nahradiť vlastnými:
options(); // OptionsManager instance
options(ThemeOption::class); // global value
options(ThemeOption::class, $user); // scoped value
options()->set(ThemeOption::class, 'dark');
setting('theme'); // identical alias
setting('theme', $user);Register textových kľúčov
Zaregistrujte krátke kľúče, aby sa nastavenia dali získať podľa reťazca — hodí sa to v Blade, v UI riadenom konfiguráciou aj v CLI. Registrujte ich v service provideri:
use RoundlyConsulting\Options\Facades\Options;
// In a service provider’s boot()
Options::register([
'theme' => ThemeOption::class,
'locale' => LocaleOption::class,
]);
Options::key('theme')->get();
options('theme', $user);
Options::for($user)->key('theme')->set('dark');
Options::registered(); // ['theme' => ThemeOption::class, …]
Options::resolveClass('theme'); // ThemeOption::classAlebo ich deklarujte v konfigurácii:
// config/options.php
'registry' => [
'theme' => App\Options\ThemeOption::class,
'locale' => App\Options\LocaleOption::class,
],- Registrácie za behu majú prednosť pred položkami z konfigurácie s rovnakým kľúčom.
- Kľúč v registri je len alias na vyhľadanie — hodnota sa stále ukladá pod key() nastavenia.
- Kľúče s bodkou ako profile.theme sú len konvencia pomenovania; neukladajú sa ako skupiny.
- Registrované kľúče aj class-stringy prechádzajú jedným resolverom; neznámy kľúč či trieda vyhodí InvalidOptionClassName.
Blade direktíva
{{-- registered key or class-string; output is HTML-escaped --}}
@option('theme')
@option(\App\Options\ThemeOption::class)
{{-- the arguments are passed straight to options(), so an owner works too --}}
@option('theme', auth()->user())@option sa skompiluje na options(...) obalené v e(), takže výstup je HTML-escapovaný a platí riadenie prístupu. Ak vaša aplikácia už direktívu @option definuje, balík ju ponechá a vlastnú nezaregistruje.
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.