У меня есть объект User, который после успешной аутентификации встраивается в сеанс (без информации о безопасности) для легкого вызова и для определения того, есть ли у нас аутентифицированный пользователь или анонимный сеанс. Есть несколько путей, по которым пользователь может изменить часть или всю свою информацию, и я хотел бы поддерживать это значение сеанса в актуальном состоянии. Очевидный ответ — обновить значение в обратном вызове afterSave(), но это, конечно, нарушает MVC.
Есть ли другой способ зафиксировать каждое изменение в одном месте, чтобы мне не приходилось отбрасывать сеансовые записи повсюду? Я ничего не могу придумать, и я не смог найти никаких других идей. Я единственный, кто пытается сделать что-то подобное?
Спасибо.
Окончательное решение. Откровенно говоря, я пометил ответ neilcrookes как ответ, потому что, похоже, лучшего пути не существует. Однако, поскольку этот способ нарушает мои чувства ОКР, я пошел немного другим путем. Я решил, что мой метод User::authenticate() возвращает аутентифицированный пользовательский объект вызывающему объекту, чтобы он мог делать с ним все, что захочет. Одна из вещей, которую «хочу» сделать вызывающая сторона, — это отбросить это значение в сеансе. Это избыточность, но она очень, очень ограничена. На мой взгляд, это было лучше, чем доступ к сеансу из модели (хотя это, безусловно, черт возьми, если вы это сделаете, черт, если вы не создадите сценарий).