register method

  1. @override
void register(
  1. ContainerInterface container
)
override

Called when the provider is registered in the container.

Implementation

@override
void register(ContainerInterface container) {
  // Register cache driver registry
  container.singleton<ICacheDriverRegistry>(
    (c) => CacheDriverRegistry(),
  );

  // Register cache statistics manager
  container.singleton<ICacheStatisticsManager>(
    (c) => CacheStatisticsManager(),
  );

  // Register cache tag manager
  container.singleton<ICacheTagManager>(
    (c) => CacheTagManager(),
  );

  // Register cache validator
  container.singleton<ICacheValidator>(
    (c) => CacheValidator(),
  );

  // Register cache config loader
  container.singleton<ICacheConfigLoader>(
    (c) => CacheConfigLoader(),
  );

  // Register cache manager with all dependencies
  container.singleton<CacheManager>(
    (c) => CacheManager(
      driverRegistry: c.resolve<ICacheDriverRegistry>(),
      statisticsManager: c.resolve<ICacheStatisticsManager>(),
      tagManager: c.resolve<ICacheTagManager>(),
      configLoader: c.resolve<ICacheConfigLoader>(),
      validator: c.resolve<ICacheValidator>(),
    ),
  );

  // Register interface bindings for easier resolution
  container.bind<ICacheManager>(
    (c) => c.resolve<CacheManager>(),
  );
}