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

Konfigurácia

Publikovaný config/options.php v plnom znení:

return [
    'model' => RoundlyConsulting\Options\Option::class,

    // Owner key type: bigint, uuid or ulid — fixed when the migration first runs.
    'key_type' => env('OPTIONS_KEY_TYPE', 'bigint'),

    'registry' => [
        // 'theme' => App\Options\ThemeOption::class,
    ],

    'cache' => [
        'enabled' => env('OPTIONS_CACHE_ENABLED', true),
        'store'   => env('OPTIONS_CACHE_STORE'),
        'ttl'     => env('OPTIONS_CACHE_TTL', 3600),
        'prefix'  => env('OPTIONS_CACHE_PREFIX', 'options'),
        'tag'     => env('OPTIONS_CACHE_TAG', 'options'),
    ],

    'events' => [
        'enabled'  => env('OPTIONS_EVENTS_ENABLED', true),
        'resolved' => env('OPTIONS_EVENTS_RESOLVED', false),
    ],

    'groups' => [
        // 'billing' => App\Settings\BillingSettings::class,
    ],

    'authorization' => [
        'enabled'  => env('OPTIONS_AUTHORIZATION', false),
        'use_gate' => env('OPTIONS_AUTHORIZATION_GATE', false),
    ],

    'config_overrides' => [
        // 'mail.from.address' => App\Options\MailFromAddressOption::class,
    ],

    'config_overrides_live' => env('OPTIONS_CONFIG_OVERRIDES_LIVE', false),
];

Všetky kľúče

KľúčPredvolenéEnvÚčel
modelOption::class—Eloquent model, ktorý ukladá hodnoty. Musí dediť od RoundlyConsulting\Options\Option.
key_typebigintOPTIONS_KEY_TYPETyp kľúča vlastníkov — bigint, uuid alebo ulid (bez ohľadu na veľkosť písmen). Určuje typ owner_id; nastavte ho pred migráciou. Čokoľvek iné pri spustení migrácie vyhodí InvalidConfigurationException.
registry[]—Krátke textové kľúče → triedy nastavení, na prístup cez kľúč.
cache.enabledtrueOPTIONS_CACHE_ENABLEDZapne trvalú cache naprieč requestami.
cache.storenullOPTIONS_CACHE_STORENázov cache úložiska; null alebo prázdna hodnota (nenastavené) použije predvolené úložisko. Hodnota, ktorá nie je reťazec, vyhodí výnimku.
cache.ttl3600OPTIONS_CACHE_TTLŽivotnosť v sekundách — celé číslo, aspoň 1; null znamená bez expirácie, prázdna hodnota (OPTIONS_CACHE_TTL=) sa považuje za nenastavenú a znamená 3600. Neplatná hodnota ako abc alebo 0 vyhodí výnimku namiesto tichého vypnutia cache.
cache.prefixoptionsOPTIONS_CACHE_PREFIXPrefix kľúčov v cache. Prázdna hodnota sa považuje za nenastavenú a použije sa predvolená; hodnota, ktorá nie je reťazec, vyhodí výnimku.
cache.tagoptionsOPTIONS_CACHE_TAGCache tag, vďaka ktorému úložisko s tagmi (Redis, Memcached) pri vyprázdnení aj hneď zmaže staré záznamy. Prázdna hodnota sa považuje za nenastavenú a použije sa predvolená; hodnota, ktorá nie je reťazec, vyhodí výnimku.
events.enabledtrueOPTIONS_EVENTS_ENABLEDSpúšťa OptionSet / OptionForgotten. Stavajú na nich observery aj živé prepisy konfigurácie.
events.resolvedfalseOPTIONS_EVENTS_RESOLVEDSpúšťa aj OptionResolved pri každom čítaní — je ho veľa, preto je predvolene vypnutý.
groups[]—Krátke kľúče → triedy OptionGroup, pre Options::group('kľúč').
authorization.enabledfalseOPTIONS_AUTHORIZATIONVynucuje hooky authorizeRead() / authorizeWrite() jednotlivých nastavení.
authorization.use_gatefalseOPTIONS_AUTHORIZATION_GATEZohľadní aj Gate abilities option.read / option.write, ak sú definované.
config_overrides[]—Kľúče config() → nastavenia, ktorých uložená hodnota pri štarte prepíše konfiguráciu.
config_overrides_livefalseOPTIONS_CONFIG_OVERRIDES_LIVEPri set() / forget() znova aplikuje namapovaný kľúč v bežiacom procese.

Prostredie (env)

Všetko okrem modelu a máp tried sa nastavuje cez env, takže väčšina nasadení konfiguráciu vôbec nepublikuje:

OPTIONS_KEY_TYPE=bigint
OPTIONS_CACHE_ENABLED=true
OPTIONS_CACHE_STORE=redis
OPTIONS_CACHE_TTL=3600
OPTIONS_CACHE_PREFIX=options
OPTIONS_CACHE_TAG=options
OPTIONS_EVENTS_ENABLED=true
OPTIONS_EVENTS_RESOLVED=false
OPTIONS_AUTHORIZATION=false
OPTIONS_AUTHORIZATION_GATE=false
OPTIONS_CONFIG_OVERRIDES_LIVE=false

Prepínače typu bool prijímajú bežné zápisy v env: true / false, 1 / 0, on / off aj yes / no. Každé nastavenie sa číta prísne: nenastavený kľúč — chýbajúci, null alebo prázdny (KEY= v .env) — použije predvolenú hodnotu a akákoľvek iná neplatná hodnota vyhodí InvalidConfigurationException s názvom kľúča — nič sa nenahrádza.

Príkaz about

Balík hlási svoju konfiguráciu do príkazu about v Laraveli. Kľúče nastavení, kľúče skupín a namapované cesty konfigurácie ukáže iba ako počty — kľúč pomenúva vaše nastavenie a jeho hodnotou môže byť token, feature flag či osobné údaje, preto sa nevypíše ani jedno:

php artisan about --only=options

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.