Этап
Готова
Тип
Рефакторнинг
Приоритет
Повышенный
Трудоемкость
Обычная
Создана
Дата создания
3 года назад
Назначена
Обновлена
3 года назад

Плохо, что у нас в бизнесс-данных лежат особенности организации кода, а именно полные имена класов объектов к которым крепятся комментарии. Если мы захотим переименовать или переместить сущность (а такие планы у нас есть в tndt-108), комментарии сломаются.

Поэтому

  • заводим enum со всеми комментируемыми объектами.
  • Учим репозиторий выбирать коменты по значению enum, а не классу
  • учим сервис по переданному объекту получать тип из enum
  • делаем миграцию превращающую класс в тип.

Теперь при переименовывании или перемещении сущности (или модели) достаточно будет поправить маппинг в коде, без миграции бд.

Панель управления

Комментарии могут оставлять только авторизованные пользователи
 demius 3 года назад

Ну, минимально мы все сделали

 demius 3 года назад

Интересно, что я уже пытался сделать тип объекта перечислением, хранящимся в БД в рамках tndt-71 но почему-то от этого отказался http://git.hsrv.home/demius/tndt/commit/a70ec23b9eefe0c6766ee463de1d49b9655ef478#diff-9f2f2f96a76d8aa3b14d9c95ab68a4fca4e0d76e

Можно попробовать совершить не него новый набег, уже для более привычного строкового enum, но надо ли, если грядет php8 с нативными enum и поддержкой их докриной? https://www.doctrine-project.org/2022/01/11/orm-2.11.html

 demius 3 года назад

Т.е. задача блокирует tndt-85 Поэтому безусловно входит в v0.3

 demius 3 года назад

Сие необходимо сделать до рефакторинга, иначе коменты сломаются