как правильно создать метод меппера?...

Духовность™

Продвинутый новичок
как правильно создать метод меппера?...

Тем, кто наблюдал мою тему про ленивую загрузку, будет понятна суть. Есть Vote_Mapper для манипулирования с объектом "голосование". Есть Vote_Questions_Mapper для манипулирования объектами "варианты вопросов к текущему голосованию".

Мне нужно написать метод меппера "голосование" для удаления голосования.

Можно сделать метод таким образом:
PHP:
class Vote_Mapper()
{
    public function delete($object)
    {
        // Удаляем только строку таблицы vote 
        parent::deleteRow($object->id);
    }
}
вызывать его так:
PHP:
$vote_mapper->delete($vote);
и удалить строку из таблиц "голосование". А варианты ответов из другой таблицы, удалить уже "руками":
PHP:
$questions_mapper = new Vote_Questions_Mapper();

$vote_mapper->loadAnswer($vote); // получаем вопросы к объекту голосования $vote
$vote_mapper->delete($vote); // удаляем сам $vote

// проходимся по массиву $vote->questions объекта 
// $vote и поочередно удаляем из таблицы варианты ответа
foreach ($vote->questions as $questions)
{
    $questions_mapper->delete($questions);
}
а можно в Vote_Mapper->delete() удяять не только строку из таблицы vote, но и все строки из таблицы questions, запихнув весь этот код непосредственно в метод Vote_Mapper->delete().

Как более грамотно поступить?
 

zerkms

TDD infected
Команда форума
в свой новоиспечённый орм ввести понятие DELETE_ON_CASCADE (посмотреть например в доктрину) или делать то же самое средствами субд.
 
Сверху