Frage

Was sind die wichtigsten Komponenten einer PHP-Anwendung? Ich habe mit diesen kommen:

  1. Datenbank
  2. HTML-Templates
  3. Sessions / Cookies / Authentifizierung
  4. Benutzereingabe ($ _GET oder $ _POST oder URL Segmente)

Sind das die Hauptkomponenten oder gibt es andere?

Der Grund, warum ich frage dies, so kann ich jeden ‚Objekt‘ in seiner eigenen Klasse setzen, ohne sich um sich Sorgen zu machen, wie es technisch möglich sein wird. Zum Beispiel kann ich einen Beitrag Klasse, die Sie Beiträge zu einem Blog hinzufügen können, ohne sich Sorgen zu machen, wie es mit dem Rest in der Anlage / PHP-Sprache passt, etc.

War es hilfreich?

Lösung

Das klingt viel wie diese Frage .

Ich würde empfehlen, dass Sie einen Blick auf Patterns of Enterprise Application Architecture von Martin Fowler nehmen.

Ich würde auch empfehlen, dass Sie mit dem Modell oder Domain sowie Object Relational Mapping oder Database Abstraction bezogenen Fragen auf dieser Seite zu suchen. Ich weiß zufällig, dass es sehr viel exzellente Inhalte ist besonders in Bezug auf PHP.

Ich sehe zwei Fragen in dieser Frage, die Sie gepostet haben. Erstens, was sind die allgemeinen architektonischen Komponenten einer Website. Im Allgemeinen werden Sie diese drei in irgendeiner Manifestation haben:

  1. Datenbank und Datenbank-Interaction Layer
  2. Controller -. Griffe $ _GET und $ _POST (der Anfrage) und Inhalt der Ansicht zuweisen und wodurch es letztlich
  3. Ansicht -. Sollte nur HTML und ganz einfachen Code wie Schleifen enthält über Sammlungen und variable Ausgabe Iterieren

Zweite Frage, die ich sehe, ist, wo in der Anwendung Handhabung eines bestimmten Business-Objekts zu platzieren. Dies ist, wo die Diskussion ein wenig mehr einlässt, weil ich davon aus, dass Sie mit Beiträgen sowohl als Business-Objekte zu interagieren müssen (innerhalb der Domäne) und als Zeilen in einer Datenbanktabelle. Beide Bedenken können innerhalb der gleichen Klasse gewickelt werden unter Verwendung eines Muster Active Record genannt, die von Ruby on Rails populär gemacht wurde. Jedoch abhängig von der Komplexität der Anwendung und der Datenbank beteiligt Sie können durch die Schaffung einer Pfosten-Klasse die Geschäftslogik zu trennen von der Datenbank-Interaktion betrachten möchten, die als Datenbank-Interaktion Schicht wirkt und einen anderen Beitrag Klasse, die alle von der Business-Logik enthält.

Andere Tipps

Ich würde eine Datenzugriffsschicht als eine Komponente hinzufügen, die die Schnittstelle zur Datenbank bereitstellt.

Es gibt bestehende Muster, die von diesen Arten von Sorgen kümmern. Und es gibt Rahmenbedingungen, die auf diese Muster gebaut werden, die Sie auf einen Blick nehmen mögen, wo ein Großteil dieser Arbeit bereits getan wurde:

Cake PHP

Sonnen PHP

Es klingt wie Sie eine Art von Model-View-Controller Framework soll. Ein Rahmen nach diesem Muster kapselt alle DB Werk in Modelle, die Business-Logik in Steuerungen und die Präsentation / templates in Aussicht. Zwei Gerüste in den Sinn kommen:

  1. CodeIgniter (persönlicher Favorit)
  2. Cake PHP

Wenn Sie gehen diesen Weg finden Sie, dass MVC-Frameworks wird Ihnen helfen, die Daten zu trennen, wie Sie beschreiben. Plus diese Systeme neigen dazu, eine Menge von Plugins zu haben oder einem integrierten Funktionalität, die weiteren Dinge wie Authentifizierung kapseln wird, Session-Management, Post / Abrufen von Daten, etc.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top