Managers/Settings
Esta librería es la encargada de gestionar las configuraciones de la aplicación AnP y heredados. Para entender su funcionamiento de selección de parámetros hay que entender primero que hay los siguientes niveles de selección de parámetros, cuyo orden de prioridad es el que se sale a continuación:
- inputs: Estos parámetros son dados cuando se llama al método get de esta librería y vienen siendo parámetros dados directamente por el desarrollador en la llamada a dicho método.
- customs: Estos parámetros son dados cuando se crea el objeto AnP del que parte la aplicación y son parámetros que los integra el desarrollador para forzar ciertos valores por defecto o customizados.
- secrets: Estos parámetros son dados desdce un fichero externo y determina principalmente valores cuya sensibilidad no puede existir dentro del proyecto por lo que se apartan en este fichero, como pueden ser accesos a bases de datos, claves, etc. Éste tiene prioridad sobre los settings que vienen a continuación pues a pesar de tener una filosofía similar, los siguientes son parámetros públicos que personalizan a la aplicación sin sensibilidad de los mismos.
- settings: Estos parámetros son dados son cargados desde uno o más ficheros y representan la customización de la aplicación. Éstos tienen dos cargas: la configuración por defecto; y luego, sobreescribiendo, las configuraciones personalizadas.
- default_settings: Estos parámetros son dados por defecto a nivel de código para un arranque básico que permita el inicio de los componentes básicos previos al uso de los parámetros settings y secrets. Éstos vienen influenciados por inputs y customs.
Hay que tener en cuenta que estas configuraciones son simplemente diccionadios de clave valor que en base a su clave podemos coger el valor que estamos buscando. En caso de anidaciones, éstos cuentan sólo como un valor del padre de la anidación, de esta forma podemos simular incluso objetos a nivel de JSON para su configuración.
SettingsManager.sentences
Esta constante es la encargada de almacenar todos los parámetros de configuración que se carguen externamente desde ficheros de configuración JSON.
Los archivos JSON orientados al almacenaje de la configuración y secretos de AnP pueden dividir en bloques dichos parámetros visualmente para facilitar a los desarrolladores el trabajo sobre éstos, aunque dichos bloques serán ignorados a la hora de implementar dichos valores en el propio AnP para renderizar el funcionamiento de dicha librería. La sintaxis a seguir para poder dividir en bloques la configuración y/o los secretos simplemente ha de empezar por el nombre de la aplicación en Pascal Case o usar una clave determinada por los desarrolladores continuado por un guión bajo, y finalizar dicha clave mediante un guión bajo seguido de start si ésta se inicia o end si finaliza el bloque.
- typejson
- characters931
- lines24
{ "AnP_grupo_a_start" : null, "parametro_a_1" : "Valor del parámetro 1 del grupo A.", "parametro_a_2" : "Valor del parámetro 2 del grupo A.", "parametro_a_3" : "Valor del parámetro 3 del grupo A.", "parametro_a_n" : "Valor del parámetro N del grupo A.", "AnP_grupo_a_end" : null, "AnP_grupo_b_start" : null, "parametro_b_1" : "Valor del parámetro 1 del grupo B.", "parametro_b_2" : "Valor del parámetro 2 del grupo B.", "parametro_b_3" : "Valor del parámetro 3 del grupo B.", "parametro_b_n" : "Valor del parámetro N del grupo B.", "AnP_grupo_b_end" : null, "AnP_grupo_c_start" : null, "parametro_c_1" : "Valor del parámetro 1 del grupo C.", "parametro_c_2" : "Valor del parámetro 2 del grupo C.", "parametro_c_3" : "Valor del parámetro 3 del grupo C.", "parametro_c_n" : "Valor del parámetro N del grupo C.", "AnP_grupo_c_end" : null }
SettingsManager.secrets
Esta constante almacena toda la configuración secreta o de alta sensibilidad, priorizada frente a settings, con la misma estructura que ésta.
SettingsManager.default_nulls
Esta variable determina si se admiten valores nulos por defecto a la hora de retornar el valor de un parámetro requerido mediante el método get.
SettingsManager.default_value
Esta variable dcetermina el valor por defecto a devolver en caso de no encontrar nada en el método get. También puede ser usado externamente para determinar el valor por defecto de la aplicación.
SettingsManager.default_overwrite
Esta variable determina si se permite sobreescribir parámetros ya existentes en la constante settings desde el método add.
SettingsManager.default_secrets_overwrite
Esta variable determina si se permite sobreescribir parámetros ya existentes en la constante secrets desde el método add_secrets.
SettingsManager.get
Este método objeto nos permite recoger un valor de la configuración según la clave o claves dadas.
Mirar al principio de la documentación de esta librería el orden en el que se cargan las configuraciones, de esta forma será más predecible y se entenderá mejor el funcionamiento de este método objeto.