⚙️ Archivo de entorno .env y configuración en Laravel
En Laravel, el archivo .env (entorno) es fundamental para la configuración del proyecto. Contiene las variables sensibles o específicas del entorno donde se ejecuta la aplicación: base de datos, claves API, modo de depuración, URL del sitio, etc. Gracias a este archivo, el mismo código puede usarse en desarrollo, pruebas o producción sin cambios en el código fuente.
📦 ¿Dónde se encuentra?
Se encuentra en la raíz del proyecto, con el nombre .env.
Laravel también incluye un archivo de ejemplo .env.example que se usa como plantilla.
🧩 Ejemplo de un archivo .env típico
APP_NAME="MiAplicacionLaravel"
APP_ENV=local
APP_KEY=base64:u7Vg8NzgPQ...
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
LOG_LEVEL=debug
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=mi_base_datos
DB_USERNAME=root
DB_PASSWORD=
CACHE_DRIVER=file
SESSION_DRIVER=file
QUEUE_CONNECTION=sync
MAIL_MAILER=smtp
MAIL_HOST=smtp.gmail.com
MAIL_PORT=587
MAIL_USERNAME=miemail@gmail.com
MAIL_PASSWORD=clave123
MAIL_ENCRYPTION=tls
MAIL_FROM_ADDRESS="miemail@gmail.com"
MAIL_FROM_NAME="${APP_NAME}"
🔐 Seguridad
- No subas nunca tu archivo
.enva GitHub o servidores públicos. - Laravel incluye por defecto
.enven.gitignorepara evitarlo. - Usa diferentes valores para desarrollo y producción (por ejemplo, claves API o base de datos).
🧠 Cómo acceder a las variables .env
Existen varias formas de usar las variables definidas en .env:
// Ejemplo 1: usando la función env()
$apiKey = env('MAIL_USERNAME');
// Ejemplo 2: desde config/app.php
'name' => env('APP_NAME', 'Laravel'),
// Ejemplo 3: en el controlador
public function show() {
$mode = config('app.env');
return "Modo actual: " . $mode;
}
⚙️ Archivos de configuración en Laravel
Todas las configuraciones del framework se encuentran en la carpeta config/.
Estos archivos usan las variables del .env.
Por ejemplo, config/database.php usa:
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'forge'),
'username' => env('DB_USERNAME', 'forge'),
'password' => env('DB_PASSWORD', ''),
],
🧰 Comandos útiles relacionados con la configuración
Laravel guarda las configuraciones en caché para optimizar el rendimiento.
# Limpia la caché de configuración
php artisan config:clear
# Genera la caché de configuración
php artisan config:cache
# Limpia toda la caché de la aplicación
php artisan optimize:clear
🧩 Ejemplo visual: mostrando valores del .env
💻 Código del controlador
// app/Http/Controllers/EnvController.php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
class EnvController extends Controller
{
public function index()
{
$appName = config('app.name');
$appEnv = config('app.env');
$debugMode = config('app.debug') ? 'Activado' : 'Desactivado';
return view('env', compact('appName', 'appEnv', 'debugMode'));
}
}
🖥️ Vista (resources/views/env.blade.php)
<h3>Configuración de la aplicación</h3>
<ul>
<li><strong>Nombre:</strong> {{ $appName }}</li>
<li><strong>Entorno:</strong> {{ $appEnv }}</li>
<li><strong>Modo debug:</strong> {{ $debugMode }}</li>
</ul>
✅ Recomendaciones finales
- Usa
.env.examplepara compartir configuraciones base con tu equipo. - En servidores, configura variables de entorno directamente (sin subir el .env).
- Ejecuta
php artisan config:cachedespués de editar.env. - Usa
env()solo en archivos de configuración, no en controladores.
0 Comentarios
Si desea contactar comigo, lo puede hacer atravez deste formulario gracias