variables-de-entorno-secretas

¿Qué son las variables de entorno y por qué necesitas usarlas?

Tiempo de lectura: 4 minutos
Rate this post

En la actualidad, muchos frameworks como Laravel en PHP o React en Javascript utilizan las variables de entorno dentro de su arquitectura, pero ¿Qué son las variables de entorno y para qué sirven?

Si nos vamos a la definición estricta las variables de entorno son cadenas de texto almacenadas en un archivo con nombre .env que permiten almacenar secretos de nuestra aplicación, Como por ejemplo: los datos de conexión de una base de datos, algún token para poder consumir un servicio o la palabra secreta para firmar tokens.

Por lo que en esta ocasión te quiero mostrar como agregar variables de entorno a tu API en PHP utilizando el framework FlightPHP e ignorar el archivo de las variables de entorno en los commits de nuestros repositorios.

Instalando la librería phpdotenv con composer.

Para poder instalar la librería phpdotenv simplemente tenemos que seguir estos pasos:

En una terminal y estando posicionado en tu proyecto, deberemos ejecutar el comando: 

composer require vlucas/phpdotenv

Instalando variables de entorno

Una vez que se haya instalado la librería dentro de nuestro proyecto, podremos ver que en el archivo composer.json tendremos en la sección de require la llamada a la librería

Se deberá generar un archivo .env dentro de la raíz de nuestro proyecto, este archivo nos servirá para poder escribir las cadenas de texto de nuestras variables de entorno, también es una buena práctica agregar un archivo .env.dist que sirva como esquema de las variables de entorno para colaboradores de nuestro proyecto

La estructura del texto deberá ser

NOMBRE_DE_LA_VARIABLE=VALOR_DE_LA_VARIABLE

Nota: recuerda no exponer tus variables al público, esta captura la hago con fines didácticos.

Para poder utilizar las variables, podemos utilizar las variables globals de PHP $_ENV y $_SERVER, ejemplo:

y listo, ya tenemos nuestras variables de entorno funcionando correctamente dentro de nuestra aplicación.

Creación del repositorio en github

Ahora solo nos queda crear un repositorio en github, en este caso, mi repositorio es https://github.com/8devmx/api-flight, y añadir un archivo .gitignore que nos ayude a ignorar los archivos .env cada vez que realicemos un commit dentro de nuestro repositorio.

Agregar archivo al .gitignore

El archivo .gitignore deberá de estar colocado en la raíz de nuestro proyecto y una vez que lo hayas generado, simplemente tendrás que adicionar las extensiones de archivos o rutas de archivos que quieras ignorar cada vez que vayas a subir un commit

En este ejemplo, la línea uno es un comentario, el cual puedes agregar anteponiendo el símbolo # como prefijo del texto y en la línea 2, simplemente agregamos el texto .env que significa que github ignorará todos los archivos que tengan esta extensión y no los subirá al repositorio, previniendo que se expongan nuestras variables de entorno dentro del repositorio.

Resumen y Conclusiones

Las variables de entorno son importantes a la hora de estar trabajando con nuestras aplicaciones, para poder asegurar los secretos que existen en nuestra aplicación o cambiarnos de entornos libremente con la definición de las mismas, ejemplo, un entorno de desarrollo o un entorno de producción.

También es importante que tomes en consideración que una vez implementadas es necesario que tu como desarrollador y arquitecto, gestiones correctamente estos secretos, ya sea de forma manual o mediante algunas herramientas que existen en el mercado.


Si quieres saber un poco más acerca de implementar las variables de entorno dentro de tus proyectos, te invito a que visites mi canal de Youtube en el cual tengo videos y cursos explicando de manera detallada estos temas y más.

También te sugerimos que visites el curso Como CREAR una API en PHP con Flight Framework, en donde explicamos temas como: instalar composer, añadir dependencias, crear clases en código, conectar base de datos MySQL y agregar secretos o variables de entorno a nuestros proyectos.

También podría interesarte

¿gitignore, Qué ch*ngd*s es? indispensable saberlo

Comentarios desactivados en ¿gitignore, Qué ch*ngd*s es? indispensable saberlo

Tutorial Makefile

Comentarios desactivados en Tutorial Makefile

Tutorial: Insomnia Client en 8 pasos

Comentarios desactivados en Tutorial: Insomnia Client en 8 pasos
Social Share Buttons and Icons powered by Ultimatelysocial
YouTube
YouTube
Instagram
Scroll al inicio