Komplexe Webseite

Dieses Thema im Forum "Webentwicklung" wurde erstellt von pescalu, 20. April 2012 .

Schlagworte:
  1. 20. April 2012
    Hallo Forum,

    Ich bin grad an einem Projekt dran, welches größer wird als meine bisherigen.

    Kurz als Randinfo, ich kann schon relativ gut PHP aber lerne auch dauernd was neues, und zwar dadurch dass ich immer einen Schritt weiter gehe und das hier ist jetzt mein nächster Schritt, also bitte sagt nicht, ich solle erst richtig PHP lernen bevor ich mich an was großes wage, denn dadurch lerne ich es und die Grundlagen kann ich bereits sowie einige fortgeschrittene Sachen.

    Ich will also eine art CMS machen, in der es verschiedene Module gibt, allgemeine Einstellungen und die Bearbeitung vom Profil sowie Templates.

    Mein Gedankengang war bisher folgender.

    - zunächst habe ich eine index.php in der man sich einloggen kann und paar statische Sachen sieht

    - wenn man eingeloggt ist kommt das "backened" mit einem banner oben, ner navigation rechts und nem mainContent in der mitte.

    - die index.php included nun functions.php in welcher mainContent(), navi() und banner() sind.
    Dies ist, damit man später einfacher templates erstellen kann.

    - der banner ist mit dem Quellcode soweit abgeschlossen

    - die navi auch

    - der mainContent soll nun von der navi geändert werden können, das heist die navi gibt dann dann z.B. per $_GET etwas an mainContent() weiter, aber weil das ne Funktion ist, sollte ja mainContent() als funktion eine weitere php datei includen, welche mit dem $_GET arbeitet
    |
    `---> z.B. included mainContent() nun modules.php

    - jetzt gibt es innerhalb von modules.php z.b. verschiedene module die editierbar sind, das heist modules.php muss weitere php dateien includen, z.B. videos.php

    hier mach ich mal kurz ne pause

    Also arbeitet sich das schichtweise praktisch durch, es wird immer wieder eine neue Datei included und so ergeben sich eine art "Layersystem".
    Dieses System ist soweit bisher auch vorhanden und funktioniert, ich habe mir nur gedacht, dass es vieleicht eine andere, einfachere Möglichkeit bzw. Strategie gibt.

    ich weiss leider nicht wonach ich da suchen soll, "php programmstruktur?" "aufbau komplexe dynamische homepage?" keine ahnung.

    Wisst ihr da vieleicht etwas? Wie man am besten vorgeht?

    mfg pescalu
     
  2. 21. April 2012
    AW: Komplexe Webseite

    Servus,

    hast bestimmt schon gefunden, aber hier wird beschrieben wir man eine Art CMS machen könnte: Eigenes CMS erstellen mit PHP

    Mal ehrlich, wer braucht noch ein CMS? Es gibt so viele mittlerweile, dass man sich gar nicht mehr auskennt.

    mfg
     
  3. 29. April 2012
    Zuletzt bearbeitet: 29. April 2012
    AW: Komplexe Webseite

    Deine Idee geht schon in die richtige Richtung.
    Informiere dich mal über "Model-View-Controller", weil deine bisherige Vorgehenweise dem schon recht nahe kommt. In dem Zusammenhang bietet sich auch der Umgang mit OOP an (falls du das nicht schon anwendest).

    Das mit der index.php hast du schon richtig gemacht. Diese sollte dann als zentraler Punkt dienen und Daten bereitstellen, die überall benötigt werden (z.B. User-Infos: UserID, quasi ob eingeloggt oder nicht etc.)
    In diesem Zusammenhang bietet sich auch eine Object-Struktur an. Es gibt dann z.B. User-Object, welches alle Informationen und Daten zu dem Benutzer beinhaltet.

    Die Modulstruktur, die du dir überlegt hast, ist auch schon sehr gut. Ich würde in diesem so vorgehen, dass ich mir einen allgemeinen Aufbau eines Modules überlege und diesen dann für alle anwende.

    Modul.Ordner.Struktur:
    • Model
    • DAL
    • Tempaltes
    • Controller
    • Install

    Controller beinhaltet sozusagen die "Controller"-Funktionen, die für das Darstellen der Seiten verantwortlich sind, quasi die Daten die angezeigt werden sollen. Zusätzlich aber auch, z.B. bei Absendung eines Formulars, die Anfrage aufnehmen, zur Bearbeitung weitergeben und dann Rückgabewerte wieder ans Template leiten.
    Die eigentliche Verarbeitung übernimmt dann der "Model"-Part. Dieser befindet sich dann in sogenannten Model-Funktionen des Modules, dass können private Funktionen sein oder auch public, je nachdem was man vor hat. Je nachdem wie weit du es treiben willst, kannst du dann den eigentlichen Datenbank-Verkehr noch auslagern. Dafür wäre dann der Ordner "DAL" zuständig.

    In Install könntest du dann das Install-Skript (z.B. einlesen eines SQL-Files) packen.

    Module über nervige includes einfügen zu müssen fände ich recht nervig und überflüssig.
    Du kannst ja eine Tabelle in der Datenbank anlegen, in der die Module gespeichert und verwaltet werden. Jedes Modul kann dann wieder weitere Tabellen haben, wo dessen Einstellungen etc. drin stehen.

    Was du über deine "functions.php" regeln willst, könntest du in ein "Standard" Kern-Modul packen, welches die wichtigsten Funktionen bereitstellt, z.B. sowas wie GetAllModules, GetAllActiveModules, iwelche Hilfsfunktionen... . Die GetAllModules könnte dann ein Array mit IDs zurückgeben. So brauchst du Nichts extra includen.
    Du kannst als Beispiel durch eine Schleife im Backend alle Module ausgeben und baust dir eine URL zusammen, um deren Einstellungen anzuzeigen (z.B. Webhosting - Hosting-Agency: Webhosting Home).
    Dabei könnte "Settings" die Funktion im Ordner Controller sein, die ausgeführt wird, um die Settings des Modules mit der "ModuleObjectID" anzuzeigen.
    Bei den Objekten kannst du ja selbst bestimmen, was sie für Daten halten etc. .

    Ich will hier nicht noch weiter ausschweifen und ins Detail gehen. Hoffe du hast halbwegs verstanden, was ich gerade in ein paar Minuten zusammengetippt habe.


    Viel Spaß beim Programmieren.
     
    1 Person gefällt das.
  4. 29. April 2012
    AW: Komplexe Webseite

    Joa, dass wollte ich nicht auch noch gleich ansprechen.
    Meist erhält man ja einen Abhängigkeitsbaum der einzelnen Module. Damit Module, die nichts voneinander wissen trotzdem in bestimmte Prozesse einsteigen können und dabei die Modularitätsgrenzen nicht zu verletzen, gibt es die sogenannten Hooks.

    Wenn sich ein Benutzer am CMS registriert und, z.B. ein Forum-Module eine extra Benutzerdatenbank hat, könnte man einen Hook aufrufen. Nachdem der CMS-Benutzer angelegt wurde, kann allgemein ein Hookaufgerufen werden, falls das Forum den Hook-Implementiert hat, kann es sich so mit an den Prozess hängen und automatisch den Benutzer mit den eingebenen Daten für das Forum anlegen.
     
  5. 30. April 2012
    AW: Komplexe Webseite

    Danke für diese Informationen!

    Im Moment habe ich was anderes zu tun, aber sobald ich wieder etwas Zeit finde werde ich mir das alles mal genauer anschauen.
     
  6. Video Script

    Videos zum Themenbereich

    * gefundene Videos auf YouTube, anhand der Überschrift.