Как правильно организовать сохранение файлов в сущностях Doctrine?

Допустим, у нас есть сущность новость со стандартными для новости полями: заголовок, дата публикации, текст, "картинка для привлечения внимания". Вот про последний пункт и вопрос.

Я прочитал рекомендации вот отсюда: symfony.com/doc/current/cookbook/doctrine/file_upl... У меня волосы встали дыбом по следующим причинам:

1. Получается, что "Новость" знает слишком много о деталях реализации. Новости совершенно ни к чему знать подробности про файловую систему.
2. Писать эту колбасу каждый раз, когда мне понадобится загружать файлы?

Но, судя по всему, авторы имели ввиду, что их сущность Document предназначена только для хранения файла. Немножечко подумав, я пришел к следующим вариантам развития событий:

1. Выделить картинки в отдельную сущность "Картинка" и прикреплять ее один-к-одному к Новости.
2. Написать свой класс Image и хранить объекты этого класса внутри Новости в сериализованном виде.

Собственно, вопрос заключается в следующем: Есть ли третий путь, который я не вижу? Вообще, есть ли какие-то best practices на этот счет?
  • Вопрос задан
  • 2943 просмотра
Решения вопроса 1
@r_tretyakov
Посмотрите в сторону SonataMediaBundle.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@voidMan
ещё можно присмотрется к https://github.com/vitiko/IphpFileStoreBundle , мы на проекте используем . Ничего лишнего писать не нужно, в аннотациях указать нужный тип. Есть интеграция с Sonata admin.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы