Všetky balíky
Options for Laravel
Import a export
Nastavenia prenesiete medzi prostrediami alebo dodáte predvolené hodnoty cez fasádu (prípadne vložený OptionsManager). Príkazy options:export a options:import volajú ten istý manager a prácu pod ním robia ExportOptionsAction a ImportOptionsAction (pozri DI a akcie):
use RoundlyConsulting\Options\Facades\Options;
Options::export(); // list<OptionPayload>: every stored option, global and owned
Options::export($tenant); // one owner's options
Options::export(globalOnly: true); // only the global ones
Options::for($tenant)->export(); // one scope; Options::for(null)->export() = global only
$json = Options::exportJson($tenant); // the same, as a JSON array of rows
$count = Options::import($json); // JSON string — upsert, returns the count
$count = Options::import([['key' => 'theme', 'value' => 'dark']]); // decoded rows (owner_type / owner_id optional)
$count = Options::import($payloads); // list<OptionPayload>; rows and payloads may be mixedFormát dát
exportJson() aj options:export vytvoria JSON pole riadkov OptionPayload:
[
{ "key": "theme", "value": "dark", "owner_type": null, "owner_id": null },
{ "key": "theme", "value": "light", "owner_type": "App\\Models\\User", "owner_id": 5 }
]Správanie
- Hodnoty putujú presne tak, ako sú uložené — serializované a pri šifrovaných nastaveniach stále zašifrované, takže cieľová aplikácia ich prečíta len s rovnakým APP_KEY.
- Import vkladá alebo aktualizuje podľa key, owner_type a owner_id, takže opakovaný import toho istého súboru je idempotentný. Soft-zmazaný riadok zabudnutého nastavenia sa obnoví, nevznikne duplikát.
- Import zapisuje riadky priamo: bez validácie, castov, eventov, observerov aj autorizácie.
- import() vráti počet riadkov a každému importovanému kľúču zahodí záznam v pamäti requestu aj v trvalej cache, takže ďalšie čítanie už vráti importovanú hodnotu.
- owner_id sa riadi podľa options.key_type — pri vlastníkoch s bigint je to int, pri UUID či ULID reťazec. Riadok, ktorý má len owner_type alebo len owner_id, sa importuje ako globálny.
- Poškodený JSON, JSON so skalárnou hodnotou, riadok, ktorý nie je pole, alebo riadok bez textového key vyhodí InvalidOptionPayload.
- Pod Options::fake() čítajú export() a exportJson() z pamäte — tá drží to, čo by držala databáza: surové reťazce, pri šifrovanom nastavení šifrový text — a import() sa zaznamená (assertImported()) a nahrá do nej.
Z príkazového riadku
php artisan options:export --path=storage/options.json
php artisan options:export --owner="App\Models\User" --owner-id=5
php artisan options:import storage/options.json
php artisan options:clear-cachePrejavte 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.