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

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::class

Alebo 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 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.