2009-04-26 5 views
2

In jeder großen Anwendung gibt es einen ADMIN-Abschnitt.
In solchen Fällen, wenn ich nicht ZF verwende, lege ich normalerweise alle Admin-Sachen in ein separates Verzeichnis mit zusätzlichen Sicherheitsmaßnahmen (wie Hinzufügen von .htaccess-basierte Authentifizierung und/oder eine zweite Anmeldung usw.). Dies macht es auch im Dateibaum ziemlich offensichtlich, welche Datei was ist.Best Practice zum Erstellen eines Admin-Abschnitts in einer ZF-basierten Anwendung

Wie kann ich das gleiche Design in ZF erreichen? Oder gibt es Best Practices zum Erstellen eines Admin-Bereichs?
Sollte ich es in der Router-Ebene tun (wenn es "admin" in der URL gibt, dann verwende ich eine andere index.php/Bootstrap-Datei ....)
Ich denke, die einfachste war nur mit einem Controller für alle das Admin-Zeug, aber ich habe zu viel davon. So habe ich mehrere Admin-Controller Seite an Seite mit den regulären App-Controllern. Es macht ein Chaos in meinem Controller-Verzeichnis - welcher Controller ist Admin und welcher nicht?

Antwort

0

Ich erstelle normalerweise einen separaten "Anwendungsordner" - komplett mit eigenem Controller und Ansichtsverzeichnis sowie einem öffentlichen Verzeichnis für statischen Inhalt - für das gesamte Verwaltungssystem. Die Administration hat in der Regel unterschiedliche Anforderungen an wichtige Dinge wie die Zugriffsverwaltung und kann sich auf viele andere Arten von der tatsächlichen Anwendung unterscheiden. Daher denke ich, dass es eine gute Idee ist, den Quellcode vollständig zu trennen. Ein Teil des Quellcodes kann jedoch noch immer verbreitet sein. Beispiele sind Bibliotheksordner und Datenbankmodelle.

Dieser Ansatz gibt Ihnen auch größere Flexibilität bei der Entscheidung, wo das Admin-Dienstprogramm verfügbar sein sollte. Sie könnten den Apache-Alias ​​directice verwenden, um ihn in ein Unterverzeichnis auf der gleichen Domäne zu setzen oder ihn auf einen separaten vhost zu legen. Es hängt alles von dir ab.

0

Sie sollten mit Modulen mit ZF auschecken. Sie können ein Standardmodul haben, das Nicht-Admin-Zeug enthält, und ein Admin-Modul, das alles Administrative enthält. Wenn Sie ein Standardmodul verwenden, werden Ihre aktuellen URLs nicht geändert, und die URLs des Admin-Moduls sehen wie folgt aus: server.com/admin/controllername/actionname/params. Dies wird Ihre Controller alle am selben Ort und überladen werden lösen. Sie können auch die Unterklasse Zend_Controller_Action erstellen und in Ihren Modellen eine Master_Controller erstellen, um die gemeinsame Funktionalität beizubehalten. Dann machen Sie einfach eine Admin_Controller, die den Master-Controller für die gemeinsame administrative Funktionalität erweitert und jeder Controller in Ihrem Admin-Modul die Unterklasse hat. Sie können eine ähnliche Struktur verwenden, um gemeinsam genutzte Nicht-Administrator-Funktionen in Ihren anderen Modulen zu organisieren.

Zend Framework - modular directory structure

4

Ich habe es als module getan. Zusätzlich zu dem von Brett Bender bereitgestellten Modullink siehe Abschnitt 12.3.2.2 in dem von mir bereitgestellten Link.

Verwandte Themen