RedisCacheService::class, // CacheInterface::class => FileCacheAdapter::class, LoggerInterface::class => function () { $logger = make(BasicFileLogger::class); $logger = make(TimestampLoggerDecorator::class, ['logger' => $logger]); $logger = make(IpLoggerDecorator::class, ['logger' => $logger]); return make(CriticalLoggerDecorator::class, ['logger' => $logger]); }, HttpClientInterface::class => function () { $client = make(GuzzleHttpClient::class); $logger = make(BasicFileLogger::class); $client = make(RetryableHttpClientService::class,['httpClient' => $client , 'logger' => $logger , 'maxRetries' => 2]); return make(LoggableHttpClientService::class,['httpClient' => $client , 'logger' => $logger]); }, UserInfoInterface::class => function () { $service = make(UserInfoService::class); $logger = make(BasicFileLogger::class); $cache = make(Cache::class); return make(CacheUserInfoService::class, ['userInfoService' => $service,'logger' => $logger , 'cache' => $cache]); } ];