Laravel Settings Kit
Laravel Settings Kit és un paquet per gestionar configuracions en aplicacions Laravel. Les configuracions es defineixen al codi, amb el seu tipus i el seu valor per defecte, i cada usuari (o qualsevol altre model) en pot tenir un valor propi.
Definicions al codi
Els tipus, els valors per defecte i qui pot personalitzar cada configuració es declaren al fitxer de configuració o amb un constructor fluid, i es versionen amb l'aplicació. No calen seeders i tots els entorns queden iguals. A la base de dades només es guarden els valors que no coincideixen amb el per defecte.
Valors per usuari o per model
Amb el trait HasSettings, cada registre d'un model (usuaris, equips, clients...) llegeix primer el seu valor, després el global i, si no n'hi ha cap, el per defecte. Quan canvies un valor global, s'aplica a tots els que no l'han personalitzat.
Tipus i validació
Accepta text, booleà, enter, decimal, array, llista d'opcions i enums de PHP, a més de qualsevol regla de validació de Laravel. Les dades d'un formulari o d'una petició JSON es poden passar directament: "1" es converteix en true i "42" en 42. Les configuracions amb dades sensibles, com claus d'API, es poden guardar xifrades.
Pantalles de configuració
El mètode panel() retorna el que necessita un formulari de preferències: etiquetes, descripcions, opcions, valor actual i per defecte, i si l'usuari l'ha canviat. Els textos es tradueixen amb els fitxers d'idioma habituals de Laravel.
Consultes i memòria cau
Tots els valors globals, o tots els d'un usuari, es carreguen amb una sola consulta, es guarden junts a la memòria cau i es reutilitzen durant la petició. Funciona amb qualsevol driver de cau i amb Octane.
Altres eines
- Endpoints JSON opcionals, darrere del teu middleware d'autenticació i les teves Gates
- Esdeveniments
SettingUpdatediSettingReseta cada canvi - Directiva Blade
@setting('key') - Comandes Artisan per llistar, exportar, importar i netejar configuracions
Requisits
PHP 8.2 o superior i Laravel 11, 12 o 13.
Tens una idea o vols col·laborar?
Si tens una idea en ment, vols col·laborar en algun projecte o simplement vols parlar de tecnologia, escriu-nos. Ens agrada conèixer gent amb ganes de fer coses.
Parlem-ne