mivita/config/subdomain.php
2025-10-20 17:42:08 +02:00

129 lines
4.3 KiB
PHP

<?php
return [
/*
|--------------------------------------------------------------------------
| Subdomain Optimization Configuration (GPT-5 v3)
|--------------------------------------------------------------------------
|
| Optimierte Konfiguration für minimales aber leistungsstarkes
| Domain- und Session-Management.
|
*/
'cache' => [
// Request-Level Domain-Parsing Cache aktivieren
'enabled' => env('DOMAIN_CACHE_ENABLED', true),
// Max. Cache-Entries pro Request (Memory-Leak-Protection)
'max_entries' => env('DOMAIN_CACHE_MAX_ENTRIES', 50),
// Cache-Statistiken in Debug-Mode anzeigen
'show_stats' => env('DOMAIN_CACHE_STATS', false),
],
'cookie' => [
// Cookie-Name für UserShop-Persistierung
'name' => env('MIVITA_USERSHOP_COOKIE', 'mivita_shop'),
// Cookie-TTL in Tagen
'ttl_days' => env('MIVITA_USERSHOP_COOKIE_TTL_DAYS', 30),
// Secure-Flag (null = auto-detect basierend auf HTTPS)
'secure' => env('MIVITA_COOKIE_SECURE', null),
// SameSite-Policy für CSRF-Protection (lax, strict, none)
'same_site' => env('MIVITA_COOKIE_SAMESITE', 'lax'),
],
'session' => [
// Kompakte Session-Keys verwenden (shop.* statt ctx.user_shop.*)
'compact_keys' => env('MIVITA_SESSION_COMPACT', true),
// Legacy-Session-Keys für Backward-Compatibility
'legacy_support' => env('MIVITA_SESSION_LEGACY', true),
// Session automatisch nach Synchronisation speichern
'auto_save' => env('MIVITA_SESSION_AUTO_SAVE', true),
],
'debug' => [
// Domain-Switches und Session-Changes loggen
'log_domain_switches' => env('MIVITA_DEBUG_DOMAIN_SWITCHES', false), // Debug-Logging wieder deaktiviert
// Performance-Metriken loggen
'log_performance' => env('MIVITA_DEBUG_PERFORMANCE', false),
// Memory-Usage-Tracking aktivieren
'track_memory' => env('MIVITA_DEBUG_MEMORY', false),
// Cache-Hit-Statistics loggen
'log_cache_stats' => env('MIVITA_DEBUG_CACHE_STATS', false),
],
'performance' => [
// Request-Level UserShop-Caching aktivieren
'cache_user_shops' => env('MIVITA_CACHE_USER_SHOPS', true),
// Skip-Logic für Performance-Optimierung
'skip_static_assets' => env('MIVITA_SKIP_ASSETS', true),
// Memory-Monitoring für Production
'memory_limit_mb' => env('MIVITA_MEMORY_LIMIT_MB', 50),
// Graceful Degradation bei Fehlern
'graceful_degradation' => env('MIVITA_GRACEFUL_ERRORS', true),
],
'security' => [
// Cookie-Values sanitizen (XSS-Protection)
'sanitize_cookies' => env('MIVITA_SANITIZE_COOKIES', true),
// UserShop-Slug Format-Validierung
'validate_slug_format' => env('MIVITA_VALIDATE_SLUGS', true),
// Max. Slug-Länge für Sicherheit
'max_slug_length' => env('MIVITA_MAX_SLUG_LENGTH', 50),
// HttpOnly-Flag für Cookies (XSS-Protection)
'http_only_cookies' => env('MIVITA_HTTP_ONLY_COOKIES', true),
],
'fallback' => [
// Bei Fehlern auf Hauptdomain fallback
'use_main_domain' => env('MIVITA_FALLBACK_MAIN', true),
// Standard-UserShop für main-shop Domain
'default_user_shop' => env('MIVITA_DEFAULT_SHOP', 'aloevera'),
// Fehler-Toleranz: Weiter bei UserShop-Loading-Fehlern
'ignore_shop_errors' => env('MIVITA_IGNORE_SHOP_ERRORS', true),
],
/*
|--------------------------------------------------------------------------
| Environment-spezifische Defaults
|--------------------------------------------------------------------------
*/
'environment_overrides' => [
'local' => [
'debug.log_domain_switches' => true,
'debug.log_performance' => true,
'cookie.secure' => false,
],
'testing' => [
'cache.enabled' => false,
'debug.log_domain_switches' => false,
'session.auto_save' => false,
],
'production' => [
'debug.log_domain_switches' => false,
'debug.log_performance' => false,
'cookie.secure' => true,
'performance.graceful_degradation' => true,
],
],
];