где использовать Zend_Auth, в модели или контроллере? - PullRequest
3 голосов
/ 15 декабря 2010

Я работаю над своим первым логином в Zend, но я немного запутался с Zend_Auth. Все статьи, которые я читал об этом, используют его непосредственно в контроллере. Но для меня имеет смысл работать с ним в моей модели User, чтобы каждый контроллер мог вызывать эти функции.

Что вы, ребята, думаете?

На самом деле очень мало документации о моделях для Zend Framework.

Ответы [ 3 ]

2 голосов
/ 15 декабря 2010

Вы можете очень сильно добавить логику аутентификации в свой класс пользователя.

Взгляните на пост в блоге Мэтью Вейера О'Финни о инфраструктуре модели , где он показывает, как добавитьauthenticate метод, требуемый Zend_Auth_Adapter_Interface для пользовательского класса пользователя.

0 голосов
/ 15 декабря 2010

В парадигме обычного веб-приложения "модель-представление-контроллер" (которая может быть аргументирована почти без конца), раздел представления / контроллера должен содержать код, который относится к индивидуальному опыту пользователя. Модель должна быть только для взаимодействия с вашими данными; он должен содержать методы для преобразования этих данных, их хранения и извлечения, а также члены для их хранения. Все, что относится к бизнес-логике, аутентификации и другой информации, относящейся к сеансу, должно быть исключено из «модели».

0 голосов
/ 15 декабря 2010

Zend_Auth :: getInstance () вернет экземпляр, чтобы вы могли использовать его в любом контроллере, где вам это нужно, обязательно сохраните данные при успешном входе в систему, чтобы вам не требовалась модель для аутентификации или тестирования пользователяаутентифицирован.(наличие auth в вашей модели будет загружать ненужные предложения модели в память в те моменты, когда они вам не нужны ..., тест, если пользователь аутентифицирован, должен быть помещен в загрузчик)

Изменить, чтобы ответить вам 'На вопрос

сделайте так, чтобы на одном контроллере были действия для аутентификации и выхода из системы. Таким образом, вы всегда будете продолжать раздельно, вы можете вызвать функцию выхода из системы с помощью простой ссылки на странице и перенаправить обратно после выхода$ _SERVER [ 'HTTP_REFERER'];таким образом, пользователь возвращается к странице, которую он просматривал, когда нажимал на выход из системы.

...