Files
laravel-test/config/database.php
2026-03-30 19:15:13 +02:00

85 lines
4.0 KiB
PHP

<?php
// ─────────────────────────────────────────────────────────────────────────────
// config/database.php — Configurazione database
//
// Supporta più connessioni contemporaneamente. Il default è MySQL.
// ─────────────────────────────────────────────────────────────────────────────
return [
// Connessione di default (usata da tutti i Model, a meno che non sia specificata)
'default' => env('DB_CONNECTION', 'mysql'),
'connections' => [
// ── SQLite: utile per test rapidi ────────────────────────────────────
'sqlite' => [
'driver' => 'sqlite',
'url' => env('DB_URL'),
'database' => env('DB_DATABASE', database_path('database.sqlite')),
'prefix' => '',
'foreign_key_constraints' => env('DB_FOREIGN_KEYS', true),
],
// ── MySQL: usato in questo progetto ──────────────────────────────────
'mysql' => [
'driver' => 'mysql',
'url' => env('DB_URL'),
// host: nel Docker è il nome del servizio nel docker-compose (es. "db")
'host' => env('DB_HOST', '127.0.0.1'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'laravel'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'unix_socket' => env('DB_SOCKET', ''),
'charset' => env('DB_CHARSET', 'utf8mb4'),
'collation' => env('DB_COLLATION', 'utf8mb4_unicode_ci'),
'prefix' => '',
'prefix_indexes' => true,
'strict' => true,
'engine' => null,
// options TLS: scommentare in produzione con SSL
'options' => extension_loaded('pdo_mysql') ? array_filter([
PDO::MYSQL_ATTR_SSL_CA => env('MYSQL_ATTR_SSL_CA'),
]) : [],
],
],
// ─── Migrations ──────────────────────────────────────────────────────────
// Tabella che traccia quali migration sono già state eseguite
'migrations' => [
'table' => 'migrations',
'update_date_on_publish' => true,
],
// ─── Redis ────────────────────────────────────────────────────────────────
'redis' => [
'client' => env('REDIS_CLIENT', 'phpredis'),
'options' => [
'cluster' => env('REDIS_CLUSTER', 'redis'),
'prefix' => env('REDIS_PREFIX', 'portale_'), // Prefisso chiavi
],
'default' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_DB', '0'),
],
'cache' => [
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'username' => env('REDIS_USERNAME'),
'password' => env('REDIS_PASSWORD'),
'port' => env('REDIS_PORT', '6379'),
'database' => env('REDIS_CACHE_DB', '1'), // DB separato per la cache
],
],
];