singleton(AnalyticsConfig::class, function () { return AnalyticsConfig::fromEnvironment($this->environment); }); // Core Analytics Storage $container->singleton(AnalyticsStorage::class, function (Container $container) { $config = $container->get(AnalyticsConfig::class); // Get filesystem dependencies $storage = $container->has(AtomicStorage::class) ? $container->get(AtomicStorage::class) : $container->get(Storage::class); $serializer = $container->has(Serializer::class) ? $container->get(Serializer::class) : new JsonSerializer(); return new PerformanceBasedAnalyticsStorage( $container->get(PerformanceCollectorInterface::class), $storage, $serializer, $config->dataPath ); }); // Analytics Collector $container->singleton(AnalyticsCollector::class, function (Container $container) { $config = $container->get(AnalyticsConfig::class); return new AnalyticsCollector( $container->get(PerformanceCollectorInterface::class), $container->get(AnalyticsStorage::class), new SecureRandomGenerator(), $container->get(ServerEnvironment::class), enabled: $config->enabled, samplingRate: $config->samplingRate ); }); // Security Analytics Integration $container->singleton(SecurityAnalyticsListener::class, function (Container $container) { $config = $container->get(AnalyticsConfig::class); return new SecurityAnalyticsListener( $container->get(AnalyticsCollector::class), enabled: $config->securityAnalyticsEnabled ); }); $container->singleton(SecurityEventBridge::class, function (Container $container) { $config = $container->get(AnalyticsConfig::class); return SecurityEventBridge::create( $container->get(SecurityAnalyticsListener::class), enabled: $config->securityAnalyticsEnabled ); }); } }