Sie haben eine sehr interessante und grundlegende Frage aufgeworfen. Die Frage nach der großen Projektarchitektur und der Ordnerstrukturorganisation (die der Architektur untergeordnet ist).
Heutzutage ist der häufigste Ansatz zum Erstellen der CMS-Framework-Architektur die Verwendung von MVC-Mustern. Es gibt einige gute Artikel zum Erstellen eigener MVC-Frameworks. Eines davon ist das Erstellen eines MVC-Frameworks mit PHP .
MVC steht für Model, View, Controller. Sie können diese Ansätze beliebig nennen - MVC, HMVC, MVP. Das Wesentliche ist, die einzelnen Komponenten Ihres Systems zu isolieren. Der "Controller" ruft die Daten aus dem "Model" ab und sendet sie an "View", wodurch das endgültige HTML gerendert wird. Sie haben bereits das "V" in Ihr contacts.php
und "MC" in Ihr implementiert contacts_class.php
. Sie haben also die Ansicht vom Modell und der Steuerung getrennt. Jetzt können Sie ganz einfach Ihre "Ansicht" ändern und andere Teile intakt lassen.
Ich rate Ihnen nicht, blindlings dem MVC-, MVP- oder was auch immer "MV" -Muster zu folgen. Es geht um Angemessenheit, Wirksamkeit und Geschmack.
Die allgemeine dynamische Website-Anwendung kann folgende Komponenten enthalten:
- Der Einstiegspunkt, sagen wir
index.php
- Die Hilfsbibliotheken / Klassen
- Der Anforderungsrouter
- Die Module, Komponenten oder Controller
- Die Template Engine oder vielleicht einzelne Views
Die echte Webanwendung kann andere Komponenten wie Event-Handler, Event-Dispatcher und Hooks enthalten, dies sind jedoch tatsächlich Nuancen. Nun, lassen Sie mich es so präsentieren, wie ich es präsentieren möchte:
Die allgemeine Framework-Betriebsroutine lautet wie folgt:
- Die Browseranforderung wird direkt an die ausführbare Datei / script (
index.php
) des Einstiegspunkts gesendet .
- Das Einstiegspunktskript lädt die Hilfsbibliotheken, Klassen und führt eine weitere Initialisierung unserer Programmierumgebung durch.
- Die URL wird an die Anforderungsrouterinstanz übergeben. Dieser Schritt kann der Teil von Schritt 2 sein.
- Der Anforderungsrouter analysiert die URL und sendet die Operation an eine bestimmte Komponente, ein bestimmtes Modul oder einen bestimmten Controller.
- Die Komponente (oder der Controller) verarbeitet die weitergeleitete Anforderung und sendet die Daten an die Ansicht, die gerendert werden soll.
Die entsprechende Projektordnerstruktur ist im Diagramm dargestellt.
Ich würde vorschlagen, dass Sie untersuchen, wie die anderen Frameworks implementiert werden. Die empfohlenen CMS / Frameworks sind zunächst CodeIgniter, OpenCart, Joomla 1.5 und Tango CMS.