boot method

  1. @override
Future<void> boot(
  1. Container container
)
override

Optional boot method called after all providers are registered.

This method is called after all providers have been registered, making it safe to resolve dependencies that might be registered by other providers.

Implementation

@override
Future<void> boot(Container container) async {
  EventManager? eventManager;
  if (container.has<EventManager>()) {
    eventManager = await container.make<EventManager>();
    if (_managedManager != null) {
      _managedManager!.attachEventManager(eventManager);
    } else if (container.has<CacheManager>()) {
      final existing = await container.make<CacheManager>();
      existing.attachEventManager(eventManager);
      _managedManager = existing;
      _ownsManagedManager = false;
    }
  }

  if (container.has<Config>()) {
    final config = container.get<Config>();
    final manager =
        _managedManager ??
        (container.has<CacheManager>()
            ? await container.make<CacheManager>()
            : null);
    if (manager != null) {
      _applyCachePrefixFromConfig(manager, config);
    }
    if (_managedManager != null &&
        _ownsManagedManager &&
        identical(manager, _managedManager)) {
      _managedManager = _applyCacheConfig(
        container,
        config,
        eventManager: eventManager,
      );
    }
  }
}