Как правильно организовать работу с сущностями?

Есть две сущности: фотография и альбом.
С альбомом может бы связано множество фотографий. Фотография может быть связана только с одним альбомом.
У каждого альбома есть своя папка, где хранятся фотографии. Альбом берется из БД, фотографии с базой не связаны.

Требуется реализовать удаление сущности фотография.
Есть 2 варианта:
1. Альбом удаляет фотографию $album->removePhoto($photo)
2. Фотография удаляет себя из альбома
$photo->setAlbum($album);
$photo->remove();


Какой вариант правильней? Или оба неправильны?
  • Вопрос задан
  • 2432 просмотра
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
1-ый вариант предпочтительнее, так как он решает поставленную задачу, удаляет фотографию из альбома.

Но это не значит что сама фотография была удалена, это нужно делаталь отдельным степом. Альбом не должен знать как создаются или удаляются фотографии, он их только хранит, а точнее ссылки на них. Самый простой вариант - реализовать метод remove у класса Photo.

$photo = new Photo($filePath);
$album->addPhoto($photo);
$album->removePhoto($photo);
$photo->remove();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
YCLIENTS Москва
от 200 000 до 350 000 ₽
Ведисофт Екатеринбург
от 25 000 ₽
Бюро Цифровых Технологий Санкт-Петербург
от 120 000 до 180 000 ₽
07 мая 2024, в 14:11
4000 руб./за проект
07 мая 2024, в 14:10
10000 руб./за проект
07 мая 2024, в 13:57
5000 руб./за проект