Geizkragen/lib/config.php

73 lines
2.9 KiB
PHP

<?php
/**
* @file config.php
* @brief Zentrale Konfigurationsdatei für das Geizkragen-Projekt.
*
* @details Diese Datei liefert die Basis-Konfigurationseinstellungen für die gesamte Anwendung,
* insbesondere die erforderlichen Verbindungsdaten für die Datenbank. Die Werte werden primär
* über Umgebungsvariablen (Environment Variables) dynamisch ausgelesen. Sind diese Variablen
* auf dem jeweiligen System nicht gesetzt, wird auf standardisierte Fallback-Werte (Defaults)
* zurückgegriffen. Dies ermöglicht eine sichere und flexible Trennung von Quellcode und
* umgebungsspezifischen Konfigurationen.
*/
// Zentrale Konfiguration der Anwendung
declare(strict_types=1);
/**
* @brief Konfigurations-Array der Anwendung.
*
* @details Gibt ein mehrdimensionales, assoziatives Array zurück, welches alle
* betriebsrelevanten Konfigurationsparameter der Anwendung kapselt. Aktuell umfasst
* dies im Wesentlichen die Datenbank-Konfiguration unter dem Schlüssel 'db'.
*
* @return array Assoziatives Array mit den Systemeinstellungen.
*/
return [
/**
* @brief Datenbank-Konfigurationseinstellungen.
* @details Enthält alle Parameter, die zum Aufbau einer PDO- oder MySQLi-Verbindung notwendig sind.
*/
'db' => [
/**
* @brief Der Hostname oder die IP-Adresse des Datenbankservers.
* @details Ausgelesen aus der Umgebungsvariable 'GEIZKRAGEN_DB_HOST'.
* Fallback ist 'localhost'.
*/
'host' => getenv('GEIZKRAGEN_DB_HOST') ?: 'HOST',
/**
* @brief Der TCP-Port des Datenbankservers.
* @details Ausgelesen aus 'GEIZKRAGEN_DB_PORT'. Der Wert wird für Typsicherheit strikt in
* einen Integer umgewandelt. Fallback ist der Standard-MySQL/MariaDB Port 3306.
*/
'port' => (int)(getenv('GEIZKRAGEN_DB_PORT') ?: 3306),
/**
* @brief Der Benutzername zur Authentifizierung an der Datenbank.
* @details Ausgelesen aus 'GEIZKRAGEN_DB_USER'. Fallback ist 'FSST'.
*/
'user' => getenv('GEIZKRAGEN_DB_USER') ?: 'USER',
/**
* @brief Das Passwort zur Authentifizierung an der Datenbank.
* @details Ausgelesen aus 'GEIZKRAGEN_DB_PASS'. Das Fallback-Passwort dient nur für lokale
* oder vordefinierte Entwicklungsumgebungen.
*/
'pass' => getenv('GEIZKRAGEN_DB_PASS') ?: 'PASSWORD',
/**
* @brief Der Name der verwendeten Datenbankstruktur/Schema.
* @details Ausgelesen aus 'GEIZKRAGEN_DB_NAME'. Fallback ist 'FSST'.
*/
'name' => getenv('GEIZKRAGEN_DB_NAME') ?: 'DATABASE',
/**
* @brief Der verwendete Zeichensatz (Charset) für die Datenbankverbindung.
* @details Ausgelesen aus 'GEIZKRAGEN_DB_CHARSET'. Fallback ist 'utf8mb4',
* was empfohlen wird, um vollständige Unicode-Unterstützung (inkl. Emojis) zu garantieren.
*/
'charset' => getenv('GEIZKRAGEN_DB_CHARSET') ?: 'utf8mb4',
],
];