Недавно я решил внедрить DataMapper в свое CI-приложение, пока оно отлично работает. У меня есть пара вопросов, касающихся использования пользовательских методов модели. Допустим, я хочу обновить файлы cookie пользователя, когда он входит в мое приложение. Мой контроллер выглядит примерно так (я исключил определение класса):
if(isset($_POST['login_rememberme']) && $_POST['login_rememberme'] == TRUE)
{
// There's already a user object defined here called $user
// Create two new random cookies
$pid = rand_str(40);
$sid = rand_str(40);
// Set the cookies in the users browser
setcookie('pid', $pid, COOKIE_EXPIRE, '/', FALSE, '', TRUE);
setcookie('sid', $sid, COOKIE_EXPIRE, '/', FALSE, '', TRUE);
// Update users relationsship with the new cookies in the db
???
}
Файлы cookie хранятся в отдельной таблице от пользовательских данных (пароль, электронная почта и т. д.). Отношения между файлами cookie и пользователями определяются в таблице cookie_users. Я думаю, что я мог бы создать метод в моей модели cookie с именем setCookies и разрешить два параметра, sid и pid, но тогда как мне использовать уже установленная пользовательская модель в этом методе, передать ли ее методу? Читая DataMapper, я не совсем уверен, рекомендуется ли бросить всю логику в контроллер и сохранить модели в чистоте, насколько это возможно, или можно ли упаковать ваши модели с помощью пользовательских методов. Кто-нибудь знает, что вверх и вниз в этом?
Спасибо за ваше время.