@SashaAdmin

Как реализовать хранение настроек в базе данных?

Работаю над Symfony проектом, там есть сущности:
  • Проекты
  • Настройки проектов

Настройки бывают разные, иногда это число, чаще это какой-то php-шный enum и их нужно сохранять и доставать из таблички.

Сейчас пришел к тому, что можно сделать свой сериализатор к строчному типу и явно описать каждую существующую настройку в системе. В Symfony, как я понял из коробки нет чего-то подобного. Выглядит это как-то так:
enum AuthTypesEnum: string
{
    use Arrayable;

    case SESSION = 'session';
    case JWT = 'jwt';
}

final class ProjectSettingsMapper extends BaseMapper implements Typable
{
    /**
     * @inheritDoc
     */
    public static function types(): array
    {
        return [
            'AUTH_TYPE' => new AsEnum(AuthTypesEnum::class),
            'AUTH_MAX_ATTEMPT' => new AsInt(),
        ];
    }
}


В идеале хотелось бы иметь подсказки в phpstorm, в текущей реализации этого нет (хотя phpdoc описан), да и выглядит как большой костыль.

Собственно, вопрос: как лучше и правильнее такое сделать?
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы