Сохранение и инициализация значений сеанса в модели - PullRequest
0 голосов
/ 08 марта 2012

Представьте, что я хочу войти в систему пользователя. Пользователь отправляет данные проверки, и мой контроллер получает запрос POST, поэтому он вызывает метод репозитория пользователя, чтобы зарегистрировать его.

Я бы хотел начать сеанс пользователя с данными пользователя. Но как мне начать сеанс? Это должно начаться в контроллере или модели? Я думаю, что это должна быть модель, поскольку моя бизнес-логика говорит, что сессия должна быть начата. Но как? Должен ли я передать объект сеанса в мой репозиторий?

Я использую Doctrine для слоя модели, и мой собственный фреймворк для всего остального. Я использую внедрение зависимостей, но не вижу, как получить доступ к сеансу из слоя entity / repositories.

Единственное решение, которое у меня есть сейчас, - это вызвать метод репозитория, передавая сеанс в качестве параметра, но это не так

1 Ответ

1 голос
/ 12 марта 2012

Я думаю, что обработка сеанса должна выполняться в контроллере, но только личное мнение. Если вы пытаетесь добиться четкого разделения интересов, это должно быть сделано вызывающе, если вы контролируете. Нет смысла в том, чтобы сделать Doctrine (которая очень сильно сфокусирована на абстракции и независимости) зависимой от сеанса.

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

...