Agregar parámetros por configuración en Laravel

Cualquier información que haya en el código sería visible en caso de subir a un reposistorio como pueda ser Github o Gitlab en otros. Me refiero a datos de email, claves para API, base de datos, etc.

Siguiendo las buenas prácticas de programación y aprovechando que en Laraven no se sube el fichero .env a un repositorio, vamos a configurar un ejemplo de datos secretos en para API.

Índice
  1. Crear parámetros en el fichero .env
  2. Llamar a los parámetros del fichero .env

Crear parámetros en el fichero .env

Abrimos el fichero .env para introducir nuevas definiciones como es el codigo de cliente y la clave

\.env

API_CLIENT_ID=95ae08f0-04f9-------
API_CLIENT_SECRET=EZRkJbRmK-------

También incluir las definiciones en el fichero .env.example para que el usuario que descargue el proyecto, sepa que tienen que rellenar estos campos.

API_CLIENT_ID=
API_CLIENT_SECRET=

Una vez configurado las definiciones ya se pueden acceder a ellas.

Limpiar caché en Laravel

Para que Laravel pueda leer de éstas, hay que limpiar caché con el comando config:clear

php artisan config:clear

Regenerar caché en Laravel

Para obtener todos los cambios del proyecto y todo sea más ágil se utiliza el método config:cache

php artisan config:cache

Llamar a los parámetros del fichero .env

En este ejemplo vamos a llamar a las definiciones creadas, desde el fichero services.php

config\services.php

Al final del fichero escribimos la nueva propiedad del servicio, y se llama con el método env() indicando el nombre a obtener su definición.

...

'api' => [
        'client_id' => env('API_CLIENT_ID'),
        'client_secret' => env('API_CLIENT_SECRET'),
 ],

Para ve que los datos se recuperan correctamente se puede llamar a la función config() pasando el nombre de la propiedad a obtener, por ejemplo

config('services');
config('services.api');
config('services.api.client_id')

El primero devuelve todos los campos que hay en el fichero config.
El segundo devuelve lo que hemos definido anteriormente.
El tercero devuelvo solo el client_id definido en el fichero .env. 95ae08f0-04f9-------

También está la opción de llamar directamente al .env con el método env().

env('API_CLIENT_ID');
env('API_CLIENT_SECRET');

Puedes seguir viendo cómo crear un cliente para API RESTful con laravel.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Subir