SIU-Toba / framework

Framework para desarrollo rápido de aplicaciones web
http://toba.siu.edu.ar
21 stars 24 forks source link

Optimizar manejo de configuraciones en un solo archivo #65

Open gpilla opened 5 years ago

gpilla commented 5 years ago

En el marco de la dockerización en producción sería optimo si se puede enviar a un solo archivo todas las configuraciones disceminadas.

En el caso de la dockerización de nuestra intalación de SIU-Guaraní... los archivos modificados son:

Es una tortura.

Se me ocurre que si se quiere seguir manejando en archivo puede ser JSON, YAML o DOTENV. Este ultimo sería optimo si podemos tambien manejarlo para que tome las variables de entorno $_ENV y asi evitar incluso la escritura de archivos y a su vez, se evita el archivo instalacion/entorno_toba.env

Para la organización inventar "namespaces" equivalentes a los directorios actuales.

sergiovier commented 5 years ago

Gustavo,

Un paliativo sería que (re)definan en los archivos .ini las configuraciones para que lean valores de entorno directamente. Ej con bases.ini:

[toba_3_1]
motor = "postgres7"
profile = "$env(PROYECTO_DB_HOST)$"
usuario = "$env(PROYECTO_DB_USERNAME)$"
clave = "$env(PROYECTO_DB_PASSWORD)$"
base = "$env(PROYECTO_DB_DBNAME)$"
puerto = "$env(PROYECTO_DB_PORT)$"
encoding = "LATIN1"
schema = "toba_arai_usuarios"

@enfoqueNativo tendría que saber a cuales archivos .ini se les puede aplicar esta forma de configuración y a partir de que versión de Toba. Lo cierto es que no soluciona el hecho de que toda la configuración esté diseminada en el filesystem.

enfoqueNativo commented 5 years ago

@gpilla Es la idea, ir convergiendo en un único archivo de configuración (por ahora el formato no esta decidido) y mientras tanto concentrar el acceso a la información via toba_config.

En dicha clase están los archivos mínimos que se cargan siempre, después explicitamente se están cargando algunos archivos básicos mas de toba como ser instancia.ini, etc.

Para terminar de completar el pasaje, necesito modificar aun algunas clases del modelo (sobre todo las de WS REST) restantes y hacer que los proyectos empiecen a centralizar la lectura de parámetros propios vía toba_config (aca me podes ayudar ;) ) de forma que se acostumbren a cargar explicitamente sus archivos.

A partir de la versión 3.1.12 (y un poco antes también) tenes la posibilidad de incluir variables de entorno como valores en los archivos ini (tal como menciona @sergiovier ), es una solución de compromiso.. hasta que completemos la transición.