boot method
Boot logic for core services such as loading .env and logging startup.
Implementation
@override
Future<void> boot(ContainerInterface container) async {
final envSystem = container.resolve<EnvInterface>();
envSystem.loadFromFile('.env');
final config = container.resolve<ConfigInterface>() as ConfigSystem;
config.setEnvironment(envSystem.getOrDefault('APP_ENV', 'development'));
// Configure exception handling verbosity based on environment.
final isDebug = envSystem.getBool(
'APP_DEBUG',
defaultValue: Khadem.isDevelopment, // Default to true in development mode
);
final exceptionHandler =
container.resolve<ExceptionHandlerContract>() as ExceptionHandler;
exceptionHandler.configure(
showDetailedErrors: isDebug,
includeStackTracesInResponse: isDebug,
);
// Load storage manager
final storageManager = container.resolve<StorageManager>();
storageManager.fromConfig(config.section('storage') ?? {});
Lang.use(container.resolve<LangProvider>());
Lang.setGlobalLocale(envSystem.getOrDefault('APP_LOCALE', 'en'));
final logger = container.resolve<Logger>();
logger.loadFromConfig(config);
tz.initializeTimeZones();
logger.info('✅ Core services initialized');
}