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.
Aqui puedes ver
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.