# Konfiguration Diese Anleitung erklärt, wie Sie das Framework nach der Installation konfigurieren können. ## Umgebungsvariablen Die Hauptkonfiguration des Frameworks erfolgt über Umgebungsvariablen, die in der `.env`-Datei definiert sind. Wenn Sie das Framework gerade installiert haben, sollten Sie eine Kopie der `.env.example`-Datei erstellt und in `.env` umbenannt haben. ### Wichtige Umgebungsvariablen Hier sind die wichtigsten Umgebungsvariablen, die Sie konfigurieren sollten: #### Anwendung ``` APP_NAME="Meine Anwendung" APP_ENV=development APP_DEBUG=true APP_URL=http://localhost:8000 APP_KEY=base64:... ``` - `APP_NAME`: Der Name Ihrer Anwendung - `APP_ENV`: Die Umgebung, in der die Anwendung läuft (`development`, `testing` oder `production`) - `APP_DEBUG`: Ob Debug-Informationen angezeigt werden sollen (`true` oder `false`) - `APP_URL`: Die Basis-URL Ihrer Anwendung - `APP_KEY`: Der Verschlüsselungsschlüssel für Ihre Anwendung (wird automatisch generiert) #### Datenbank ``` DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=framework DB_USERNAME=root DB_PASSWORD= ``` - `DB_CONNECTION`: Der Datenbanktyp (`mysql`, `sqlite`, `pgsql` oder `sqlsrv`) - `DB_HOST`: Der Hostname des Datenbankservers - `DB_PORT`: Der Port des Datenbankservers - `DB_DATABASE`: Der Name der Datenbank - `DB_USERNAME`: Der Benutzername für die Datenbankverbindung - `DB_PASSWORD`: Das Passwort für die Datenbankverbindung #### Cache und Sitzungen ``` CACHE_DRIVER=file SESSION_DRIVER=file SESSION_LIFETIME=120 ``` - `CACHE_DRIVER`: Der Cache-Treiber (`file`, `redis` oder `memory`) - `SESSION_DRIVER`: Der Sitzungstreiber (`file`, `database` oder `redis`) - `SESSION_LIFETIME`: Die Lebensdauer der Sitzung in Minuten #### E-Mail ``` MAIL_DRIVER=smtp MAIL_HOST=smtp.mailtrap.io MAIL_PORT=2525 MAIL_USERNAME=null MAIL_PASSWORD=null MAIL_ENCRYPTION=null MAIL_FROM_ADDRESS=null MAIL_FROM_NAME="${APP_NAME}" ``` - `MAIL_DRIVER`: Der E-Mail-Treiber (`smtp`, `sendmail` oder `log`) - `MAIL_HOST`: Der Hostname des SMTP-Servers - `MAIL_PORT`: Der Port des SMTP-Servers - `MAIL_USERNAME`: Der Benutzername für die SMTP-Verbindung - `MAIL_PASSWORD`: Das Passwort für die SMTP-Verbindung - `MAIL_ENCRYPTION`: Die Verschlüsselungsmethode (`tls` oder `ssl`) - `MAIL_FROM_ADDRESS`: Die Absenderadresse - `MAIL_FROM_NAME`: Der Absendername ## Konfigurationsdateien Neben den Umgebungsvariablen verwendet das Framework auch Konfigurationsdateien im Verzeichnis `config/`. Diese Dateien enthalten Konfigurationen, die nicht über Umgebungsvariablen gesteuert werden sollten oder komplexere Strukturen erfordern. ### Wichtige Konfigurationsdateien #### app.php Die Datei `config/app.php` enthält allgemeine Anwendungskonfigurationen: ```php return [ 'name' => env('APP_NAME', 'Framework'), 'env' => env('APP_ENV', 'production'), 'debug' => env('APP_DEBUG', false), 'url' => env('APP_URL', 'http://localhost'), 'timezone' => 'UTC', 'locale' => 'de', 'fallback_locale' => 'en', 'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC', 'providers' => [ // Service-Provider ], 'aliases' => [ // Fassaden ], ]; ``` #### database.php Die Datei `config/database.php` enthält Datenbankkonfigurationen: ```php return [ 'default' => env('DB_CONNECTION', 'mysql'), 'connections' => [ 'sqlite' => [ 'driver' => 'sqlite', 'database' => env('DB_DATABASE', database_path('database.sqlite')), 'prefix' => '', ], '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', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ], // Weitere Datenbankverbindungen ], 'migrations' => 'migrations', 'redis' => [ 'client' => 'predis', 'default' => [ 'host' => env('REDIS_HOST', '127.0.0.1'), 'password' => env('REDIS_PASSWORD', null), 'port' => env('REDIS_PORT', 6379), 'database' => 0, ], ], ]; ``` #### cache.php Die Datei `config/cache.php` enthält Cache-Konfigurationen: ```php return [ 'default' => env('CACHE_DRIVER', 'file'), 'stores' => [ 'file' => [ 'driver' => 'file', 'path' => storage_path('framework/cache'), ], 'redis' => [ 'driver' => 'redis', 'connection' => 'default', ], 'memory' => [ 'driver' => 'memory', ], ], 'prefix' => env('CACHE_PREFIX', 'framework_cache'), ]; ``` ## Benutzerdefinierte Konfiguration Sie können auch eigene Konfigurationsdateien erstellen, um anwendungsspezifische Einstellungen zu speichern. Erstellen Sie dazu eine neue Datei im Verzeichnis `config/` und geben Sie ein Array zurück: ```php // config/myapp.php return [ 'feature_flags' => [ 'new_ui' => env('FEATURE_NEW_UI', false), 'api_v2' => env('FEATURE_API_V2', false), ], 'limits' => [ 'max_items' => 100, 'max_file_size' => 10 * 1024 * 1024, // 10 MB ], ]; ``` Sie können dann auf diese Konfiguration zugreifen mit: ```php $newUiEnabled = config('myapp.feature_flags.new_ui'); $maxItems = config('myapp.limits.max_items'); ``` ## Umgebungsspezifische Konfiguration Das Framework unterstützt umgebungsspezifische Konfigurationen. Sie können verschiedene `.env`-Dateien für verschiedene Umgebungen erstellen: - `.env` - Standardkonfiguration - `.env.development` - Entwicklungsumgebung - `.env.testing` - Testumgebung - `.env.production` - Produktionsumgebung Um eine bestimmte Umgebungskonfiguration zu laden, setzen Sie die Umgebungsvariable `APP_ENV` auf den entsprechenden Wert. ## Nächste Schritte Nachdem Sie das Framework konfiguriert haben, können Sie mit den [ersten Schritten](first-steps.md) fortfahren, um Ihre erste Anwendung zu erstellen.