2010-12-15 9 views
3

Ich arbeite an meinem ersten Benutzer Login in Zend, aber ich bin ein wenig verwirrt mit Zend_Auth. Alle Artikel, die ich darüber gelesen habe, verwenden sie direkt in der Steuerung. Für mich macht es aber mehr Sinn, in meinem User-Modell damit zu arbeiten, damit jeder Controller diese Funktionen aufrufen kann.Wohin mit Zend_Auth, in Model oder Controller?

Was denkst du?

Es gibt wirklich sehr wenig Dokumentation über Modelle für das Zend Framework.

Antwort

1

Zend_Auth :: getInstance() gibt die Instanz zurück, so dass Sie sie in jedem Controller verwenden können, wo Sie es brauchen. Stellen Sie sicher, dass die Daten bei erfolgreicher Anmeldung gespeichert werden Benutzer ist authentifiziert. (mit auth in Ihrem Modell laden würde unnötig Modell Klassen im Speicher zu Zeiten, wenn Sie sie nicht brauchen ..., der Test, wenn ein Benutzer authentifiziert wird, sollte an Bootstrap platziert werden)

Edit zu antworten Sie sind Frage

Machen Sie einen einzelnen Controller mit Aktionen für Authentifizierung und Loggout, so dass Sie immer getrennt bleiben, können Sie die Loggout-Funktion mit einem einfachen Link auf Ihrer Seite aufrufen und zurückleiten nach dem Ausloggen zu $ ​​_SERVER [' HTTP_REFERER ']; Der Benutzer landet also wieder auf der Seite, die er gerade angesehen hat, als er auf loggout geklickt hat.

+0

Ich sehe, danke für Ihre Antwort. Eine weitere Frage: Was ist mit einer Abmeldeaktion, die ich möglicherweise in jedem Controller benötigen könnte, sollte ich einen Helfer daraus machen, oder ..? – networkprofile

0

In der normalen Web-App "Model-View-Controller" -Paradigma (die argued etwa zu keinem Ende sein kann), sollte die Ansicht/Controller-Abschnitt Code enthalten, der die individuelle Erfahrung des Benutzers betrifft. Das Modell sollte nur zur Interaktion mit Ihren Daten dienen. Es sollte Methoden enthalten, um diese Daten zu transformieren, sie zu speichern und abzurufen sowie Mitglieder, die sie enthalten. Alles, was sich auf Geschäftslogik, Authentifizierung und andere sitzungsspezifische Informationen bezieht, sollte aus dem "Modell" herausgehalten werden.