Migrando getenv() a $_SERVER en Symfony

Enviado por christian el

Este será un articulo de estos que son muy muy muy cortos pero que van al problema en cuestión y lo solucionan.

En versiones antiguas de Symfony (pongamos aprox Symfony <=6), cuando queremos acceder a las variables de entorno (ficheros .env) pues directamente accedemos con la función getenv()

# Por ejemplo acceder a la variable BASE_HOST
$baseHost = getenv('BASE_HOST');

Esto en versiones actualizadas de Symfony pues no funciona, siembre obtendremos null (si lo tenemos configurado por defecto, puedes forzar que funcione pero no es el caso).

Porqué? Porque según comenta la documencatión, parece ser que con los desarrollos actuales (containers y entornos virtuales) usar getenv() puede causar corrupción de variables y mostrar datos que no son reales. Y esto no mola nada!

 

La solución¿?

Muy sencillo, vamos acceder a las variables reales del server. Esto nos permite acceder a los datos reales de nuestras variables de entorno. Como? con la var $_SERVER. Así sería:

# ANTES
$baseHost = getenv('BASE_HOST');

#AHORA
$baseHost = $_SERVER['BASE_HOST'];

Con este cambio ya podremos acceder a las .env desde nuestro proyecto Symfony

Dinahosting: dominios y alojamiento web
My investor

Regístrate en MyInvestory tendrás un extra de 20€ ! :D

 

Menciona que vienes de mi parte y te llevas un regalo en tu primera inversión :)

Usa el código U048395 y te llevas un regalo en tu primera inversión :)

 

Usa el código 22c80f y te llevas un regalo en tu primera inversión :)