2012-04-15 13 views
0

Lassen Sie uns sagen, ich habe einen Controller, der sich um die Anmeldung/Registrierung/Passwort-Wiederherstellung und so in meiner App kümmert. Ich möchte dies über verschiedene Module und Controller hinweg teilen. Was ist der beste Weg?Ist es möglich, gemeinsame Controller-Aktionen über andere Controller in ZF zu teilen?

Sollte ich eine Aktion Helfer machen, oder Vererbung verwenden? Natürlich meine ich nicht die Logik dieser Aktionen, diese werden durch Modelle implementiert (unterschiedlich für jedes Modul), ich möchte nur allgemeine Parameter teilen, interpretieren und Ergebnisse an Ansichten weitergeben.

Ich möchte eine Art generische Bibliothek für diese Dinge in meinem Projekt erstellen. Also würde ich ein abstraktes Benutzermodell haben, von dem alle anderen Modelle, die die Login/Registration-Funktion verwenden wollen, erben werden, aber ich frage mich, was mit den Controller-Sachen zu tun hat.

Irgendeine Idee?

Antwort

1

Erstellen Sie einen wiederverwendbaren Authentifizierungsdienst, was Sie tun möchten. Wenn Sie es als Dienst erstellen, können Sie es isoliert testen. Injizieren Sie den Dienst in ein Front-Controller-Plug-In, damit es bei jeder Anforderung ausgeführt wird. Die eigentliche Überprüfung kann in einen benutzerdefinierten Validator gekapselt werden, so dass Sie einfach -> isValid() aufrufen können. Wenn nicht gültig, leiten Sie die Route zur Anmeldeseite um.

+0

Können Sie Dokumente bereitstellen, um sie detaillierter als einen Dienst zu erstellen? Ich weiß, was Sie meinen, aber wie Sie es technisch lösen können. –

Verwandte Themen