SIU-Toba / framework

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

Soportar DEFAULTS en lector dinámico de ENV #74

Closed sergiovier closed 3 years ago

sergiovier commented 4 years ago

A partir del desarrollo en https://github.com/SIU-Toba/framework/issues/8, está bueno poder contar con una forma de especificar valores por defecto para las ENV si es que estas no se proporcionan.

Viendo la sintaxis, podríamos especificar $env(TOBA_SESSION_NAME:TOBA_SESSID)$ donde TOBA_SESSID sería el valor por defecto si la variable TOBA_SESSION_NAME no está presente

https://github.com/SIU-Toba/framework/blob/e88c3a4e89360f0cb5b6347fe6accda11e9edc0f/php/lib/toba_config.php#L191

La expresión regular puede ser '/^\$env\((\w*)(?::(\w*))?\)\$$/' y matchea la situación actual y el default si se lo proporciona, quedando disponible en $matches[2].

Habría que agregar una validación en el momento de recuperar la ENV, y si getenv($name) === false podemos optar por el default.

enfoqueNativo commented 4 years ago

El tema de incluir defaults ahi es que esta restringido el tipo de valores, no podes poner caracteres especiales, etc.. lo que no permite que sea uniforme para cualquier variable.

Por otro lado, si estas parametrizando un parametro (valga la redundancia) es porque esperas que siempre se le asigne valor, deberia ser un requerimiento para quien instala.

Toba esta lleno de defaults y en retrospectiva no se si fue la mejor decisión del punto de vista de entender que pasa detras.