52 lines
2.2 KiB
PHP
52 lines
2.2 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
/**
|
|
* This file is part of Hyperf.
|
|
*
|
|
* @link https://www.hyperf.io
|
|
* @document https://hyperf.wiki
|
|
* @contact group@hyperf.io
|
|
* @license https://github.com/hyperf/hyperf/blob/master/LICENSE
|
|
*/
|
|
|
|
use App\Interface\Test\Adapter\CacheInterface;
|
|
use App\Interface\Test\Decorator\HttpClientInterface;
|
|
use App\Interface\Test\Decorator\LoggerInterface;
|
|
use App\Interface\Test\Proxy\UserInfoInterface;
|
|
use App\Lib\Request\GuzzleHttpClient;
|
|
use App\Service\Test\Adapter\Cache\RedisCacheService;
|
|
use App\Service\Test\Decorator\Container\BasicFileLogger;
|
|
use App\Service\Test\Decorator\Container\CriticalLoggerDecorator;
|
|
use App\Service\Test\Decorator\Container\IpLoggerDecorator;
|
|
use App\Service\Test\Decorator\Container\TimestampLoggerDecorator;
|
|
use App\Service\Test\Decorator\Http\LoggableHttpClientService;
|
|
use App\Service\Test\Decorator\Http\RetryableHttpClientService;
|
|
use App\Service\Test\Proxy\Cache\CacheUserInfoService;
|
|
use App\Service\Test\Proxy\Cache\UserInfoService;
|
|
use Hyperf\Cache\Cache;
|
|
use function Hyperf\Support\make;
|
|
|
|
return [
|
|
CacheInterface::class => 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]);
|
|
}
|
|
];
|