⚙️ Archivo de entorno .env y configuración

⚙️ 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 .env a GitHub o servidores públicos.
  • Laravel incluye por defecto .env en .gitignore para 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.example para compartir configuraciones base con tu equipo.
  • En servidores, configura variables de entorno directamente (sin subir el .env).
  • Ejecuta php artisan config:cache después de editar .env.
  • Usa env() solo en archivos de configuración, no en controladores.

Publicar un comentario

0 Comentarios