Prepojenie s konfiguráciou
Namapujte kľúče config() na nastavenia a ich uložené hodnoty pri štarte prepíšu konfiguráciu — odosielateľa e-mailov či názov aplikácie zmeníte z databázy bez úpravy .env a bez nového nasadenia:
// config/options.php
'config_overrides' => [
'mail.from.address' => App\Options\MailFromAddressOption::class,
'app.name' => App\Options\AppNameOption::class,
],Options::set(MailFromAddressOption::class, '[email protected]');
// config('mail.from.address') === '[email protected]' after the next boot
// Register a mapping at runtime (applied immediately):
Options::overrides('app.name', AppNameOption::class);
Options::configOverrides(); // the active map
Options::applyConfigOverrides(); // re-read every mapped option into config() now- Aplikuje sa iba globálny rozsah.
- Namapované nastavenie bez uloženej hodnoty existujúcu hodnotu konfigurácie nechá tak, takže predvolené hodnoty frameworku ani .env sa nikdy neprepíšu.
- Mapovanie prijme class-stringy aj registrované kľúče. Neznáma trieda či kľúč v config_overrides vyhodí pri štarte InvalidOptionClassName.
- Prepojenie číta svoje nastavenia bez riadenia prístupu, takže do konfigurácie sa dostane aj nastavenie chránené cez authorizeRead().
- Pri štarte stojí každé mapovanie jedno overenie existencie a pri uloženej hodnote aj jedno čítanie cez cache. Chyby pri aplikovaní — napríklad ešte neexistujúca tabuľka options pri novej inštalácii — sa potichu preskočia, takže aplikácia naštartuje.
Živý režim
Pri zapnutom options.config_overrides_live set() a forget() na namapovanom nastavení znova aplikujú kľúč konfigurácie v bežiacom procese; forget() ho vráti na hodnotu, ktorú mala konfigurácia pred zásahom. Živý režim stavia na OptionSet a OptionForgotten, preto musia byť eventy zapnuté:
OPTIONS_CONFIG_OVERRIDES_LIVE=truePozor na poradie štartu
Prepis uvidí iba kód, ktorý namapovaný kľúč číta až po štarte balíka. Konfiguráciu spotrebovanú skôr pri bootstrape — alebo načítanú zo súboru config:cache pred štartom providerov — prepis neovplyvní.
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.