добавляю все изменения проекта на текущий момент
This commit is contained in:
@@ -0,0 +1,78 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services;
|
||||
|
||||
/**
|
||||
* Базовый класс для работы с Redis в контексте модульной структуры платформы
|
||||
*/
|
||||
abstract class RedisBaseService
|
||||
{
|
||||
/**
|
||||
* @var string базовое подключение к Redis. Руками не прописывается, устанавливается в конструкторе дочернего сервиса через недоступный из фасада метод protected connection(). Сделано это, чтобы разработчик не указывал вручную подключение каждый раз b при этом любой дочерний сервис был обязан прописывать подключение
|
||||
*/
|
||||
protected string $connection;
|
||||
/**
|
||||
* @var int базовый ttl для данных с ограниченным сроком жизни
|
||||
*/
|
||||
public int $ttl = 600;
|
||||
/**
|
||||
* @var string имя модуля/приложения откуда отправляются данные. Передается в инициилизирующем методе module(). Значение '' означает, что данные отправляются из корня проекта, не из модуля
|
||||
*/
|
||||
public string $moduleName;
|
||||
|
||||
|
||||
/**
|
||||
* Метод установки подключения к Redis. В какую БД кладем данные
|
||||
*
|
||||
* @param string $connection имя подключения
|
||||
* @return void
|
||||
*/
|
||||
abstract protected function connection(string $connection): void;
|
||||
|
||||
|
||||
/**
|
||||
* Инициилизирующий метод фасада, принимающий аргумент в виде названия модуля, откуда планируется отправить данные.
|
||||
*
|
||||
* @param string $moduleName имя модуля, откуда передаются данные. Аргумент можно не передавать, если данные передаются из корня ларавель
|
||||
* @return self
|
||||
*/
|
||||
public function module(string $moduleName = ''): self
|
||||
{
|
||||
$this->moduleName = $moduleName;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Меняем ttl данных
|
||||
*
|
||||
* @param int $ttl время жизни записи с данными
|
||||
* @return self
|
||||
*/
|
||||
public function ttl(int $ttl): self
|
||||
{
|
||||
$this->ttl = $ttl;
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Возвращает часть префикса ключа redis для хранения информации, отправленной из модуля
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
protected function getModuleRedisPrefix(): string
|
||||
{
|
||||
return "_" . $this->moduleName . ":";
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Реализация размещения данных в Redis
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
abstract public function put(): void;
|
||||
}
|
||||
Reference in New Issue
Block a user