diff --git a/app/Controller/TestController.php b/app/Controller/TestController.php index 623a83f..e180b28 100644 --- a/app/Controller/TestController.php +++ b/app/Controller/TestController.php @@ -3,13 +3,14 @@ namespace App\Controller; use App\Amqp\Producer\AssignDoctorDelayDirectProducer; -use App\Amqp\Producer\AssignDoctorProducer; use App\Amqp\Producer\AutoCompleteInquiryDelayDirectProducer; use App\Amqp\Producer\AutoFinishInquiryDelayDirectProducer; use App\Amqp\Producer\CancelUnpayOrdersDelayDirectProducer; use App\Amqp\Producer\SendSmsMessageProducer; use App\Constants\HttpEnumCode; use App\Exception\BusinessException; +use App\Factory\CacheFactory; +use App\Factory\ProdRedisFactory; use App\Model\DoctorInquiryTime; use App\Model\HospitalDepartmentCustom; use App\Model\OrderInquiryCase; @@ -49,6 +50,7 @@ use Hyperf\Redis\Redis; use Hyperf\Utils\ApplicationContext; use Hyperf\Utils\Coroutine\Concurrent; use Intervention\Image\ImageManager; +use Psr\SimpleCache\CacheInterface; use Spatie\PdfToImage\Pdf; use Swoole\Coroutine; use Swoole\Coroutine\Channel; @@ -331,5 +333,8 @@ class TestController extends AbstractController } public function test_15(){ +// $wechat = new Wechat(1); +// $a = $wechat->getAccessToken(); +// dump($a); } } \ No newline at end of file diff --git a/app/Driver/ProdRedisDriver.php b/app/Driver/ProdRedisDriver.php new file mode 100644 index 0000000..a244e40 --- /dev/null +++ b/app/Driver/ProdRedisDriver.php @@ -0,0 +1,19 @@ +redis = $container->get(ProdRedisFactory::class); + } + +} \ No newline at end of file diff --git a/app/Factory/ProdRedisFactory.php b/app/Factory/ProdRedisFactory.php index 1c3d17f..1997ced 100644 --- a/app/Factory/ProdRedisFactory.php +++ b/app/Factory/ProdRedisFactory.php @@ -2,6 +2,7 @@ namespace App\Factory; +use Hyperf\Redis\Pool\PoolFactory; use Hyperf\Redis\Redis; class ProdRedisFactory extends Redis diff --git a/config/autoload/cache.php b/config/autoload/cache.php index def82eb..8b0d62c 100644 --- a/config/autoload/cache.php +++ b/config/autoload/cache.php @@ -9,10 +9,19 @@ declare(strict_types=1); * @contact group@hyperf.io * @license https://github.com/hyperf/hyperf/blob/master/LICENSE */ + +use App\Driver\ProdRedisDriver; +use App\Factory\ProdRedisFactory; + return [ 'default' => [ 'driver' => Hyperf\Cache\Driver\RedisDriver::class, 'packer' => Hyperf\Utils\Packer\PhpSerializerPacker::class, 'prefix' => 'c:', ], + 'prod' => [ + 'driver' => ProdRedisDriver::class, + 'packer' => Hyperf\Utils\Packer\PhpSerializerPacker::class, + 'prefix' => 'c:', + ], ]; diff --git a/extend/Wechat/Wechat.php b/extend/Wechat/Wechat.php index 15b9725..e268528 100644 --- a/extend/Wechat/Wechat.php +++ b/extend/Wechat/Wechat.php @@ -5,11 +5,13 @@ namespace Extend\Wechat; use App\Constants\HttpEnumCode; use App\Exception\BusinessException; use App\Factory\CacheFactory; +use App\Factory\ProdRedisFactory; use EasyWeChat\Kernel\Exceptions\BadResponseException; use EasyWeChat\Kernel\Exceptions\InvalidArgumentException; use EasyWeChat\Kernel\HttpClient\AccessTokenAwareClient; use EasyWeChat\MiniApp\Application; use Hyperf\Cache\Cache; +use Hyperf\Redis\Redis; use Hyperf\Utils\ApplicationContext; use Psr\Container\ContainerExceptionInterface; use Psr\Container\NotFoundExceptionInterface; @@ -85,7 +87,7 @@ class Wechat $this->app = new Application($config); // 替换缓存 - $this->app->setCache(make(Cache::class,['driver' => 'prod'])); + $this->app->setCache(ApplicationContext::getContainer()->get(CacheFactory::class)); } catch (InvalidArgumentException $e) { throw new BusinessException('实例化EasyWeChat类失败:' . $e->getMessage(), HttpEnumCode::SERVER_ERROR); @@ -106,7 +108,6 @@ class Wechat $this->createApp($appId, $appSecret); return $this->app->getClient(); - } catch (NotFoundExceptionInterface|ContainerExceptionInterface $e) { throw new BusinessException('实例化EasyWeChat类失败:' . $e->getMessage(), HttpEnumCode::SERVER_ERROR); }