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