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

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

Требуется реализовать удаление сущности фотография.
Есть 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();
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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