Как правильно реализовать обработку данных формы? Используется фреймворк Symfony 2.
Есть сущности альбом, фотография.
Также, у сущности альбом есть поле "обложка".
Альбомы создаются на основе данных отправленных через форму. Там же передаются и фотографии которые относятся к этому альбому и обложка.
У альбомов есть папки, где хранятся его фотографии и обложка.
Требуется уменьшить размер фотографий и обложки при загрузке и поместить его в папку альбома.
Причем параметры этого уменьшения(требуемая высота, ширина) разные для фотографии и обложки.
Имеется сервис для манипуляции с изображениями. (Gregwar/ImageBundle)
На данном этапе создан сервис, который в зависимости от типа изображения(фотография или обложка, тип указывается явно) берет нужную ширину - высоту из конфига и используя Gregwar/ImageBundle изменяет размер изображения.
Что касается перемещения:
После отправки формы, изображение класса UploadedFile перемещается во временную папку, ему присваивается уникальное имя и свое расширение. Дальше путь к перемещенному изображению передается в сервис который его уменьшит. После этого на основе этого пути будет создан обьект класса Image и передан сущности Альбом, который в своем сеттере переместит его в свою папку.
Мне кажется что данное решение далеко от идеального. Хочется более оптимального варианта.
Вопрос: Как весь этот процесс должен быть организован?

21 Авг 2019 в 07:09
210 +1
0
Ответы
1

Для более оптимального решения данной задачи, рекомендуется следующий подход:

Создание отдельного сервиса для загрузки и обработки изображений. В этом сервисе можно определить методы для изменения размера изображения, перемещения изображения в нужную папку и генерации уникальных имен файлов.

Использование событийной системы Symfony для выполнения необходимых действий после отправки формы. Например, после успешного сохранения данных формы можно создать событие, которое запустит процесс обработки изображений.

Разделение логики обработки фотографий и обложки альбома. Создание отдельных методов сервиса для обработки каждого типа изображений.

Использование возможностей Symfony для работы с файлами, чтобы упростить процесс перемещения и сохранения изображений.

Обеспечение возможности легкого расширения функционала сервиса для обработки изображений (например, добавление новых параметров для изменения размера изображения).

Эти шаги помогут вам организовать процесс обработки изображений более эффективно и структурированно в вашем проекте.

20 Апр в 13:06
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 92 493 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир