loadFromConfig method

  1. @override
void loadFromConfig(
  1. ConfigInterface config,
  2. ICacheDriverRegistry registry
)
override

Loads cache configuration and registers drivers. Throws CacheException if configuration is invalid.

Implementation

@override
void loadFromConfig(ConfigInterface config, ICacheDriverRegistry registry) {
  try {
    final driverConfigs = config.get<Map>('cache.drivers') ?? {};
    final defaultDriverName = config.get<String>('cache.default') ?? 'memory';

    // Load all configured drivers
    driverConfigs.forEach((name, settings) {
      final driver = createDriverFromConfig(
        settings['driver'] as String? ?? 'memory',
        settings as Map<String, dynamic>,
      );
      registry.registerDriver(name as String, driver);
    });

    // Register default memory driver if no drivers configured
    if (registry.getDriverNames().isEmpty) {
      registry.registerDriver('memory', MemoryCacheDriver());
    }

    // Set default driver
    registry.setDefaultDriver(defaultDriverName);
  } catch (e) {
    throw CacheException('Failed to load cache configuration: $e');
  }
}