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.
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