Ankündigung

Einklappen
Keine Ankündigung bisher.

index.php und Klassenstruktur (auf Anfängerniveau!) logisch und sinnvoll aufbauen

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • index.php und Klassenstruktur (auf Anfängerniveau!) logisch und sinnvoll aufbauen

    Hi Leute,

    ich habe folgendes Problem:

    Ich möchte gerne eine Seite mit dynamischen Inhalten erstellen:
    z.B.
    - Sidebar, die Userinfos oder Login-Formular enthält
    - eine Listenansicht mit Sortierfunktion
    - eine dynamisch aufgebaute Tabelle
    etc.

    Je nachdem, welche Seite aufgerufen wird (Startseite, Userinfo o.ä.) sollen andere Inhalte geladen werden.


    Zu meinem PHP-Wissen: Ich kenne die grundlegenden Dinge, habe schon gaaaanz grob mal mit OO programmiert, bin aber noch nicht wirklich erfahren darin.
    Ich würde gerne erstmal die Finger von fortgeschrittenen Techniken wie MVC oder ähnlichem lassen, da ich heute den halben Tag nach Infos/Tutorials dazu gesucht habe, und festgestellt habe, dass diese (leider) alle ein wenig zu "hoch" für mich waren.

    Ich bin mir auch darüber im Klaren, dass so eine Frage ständig gestellt wird, aber da ich eben noch eher wenig Erfahrung habe, habe ich bisher ziemliche Schwierigkeiten gehabt, die besprochenen Beispiele auf meine eigene Situation abzubilden.


    Und genau hier kommen wir zu meinem Problem:

    Wie strukturiere ich meine Dateien/Klassen/Funktionen (auf eher Anfängerniveau!! ) so, dass es möglichst übersichtlich bleibt?

    Welche Daten kommen in die index.php?

    Baut man eine Hauptklasse, die alle anderen Inhalte vom Konstruktor aus lädt? Oder wo steht der Großteil des Skriptes?


    Ich hatte mir überlegt, dass ich in der index.php nur die Session starte/refreshe, eine Hauptklasse aufrufe, die als Parameter die aktuelle Seite erhält, und die Hauptklasse dann als Rückgabe-Wert den HTML-Quelltext zurückgibt (entweder direkt oder als extra-Funktion).

    Die Hauptklasse sieht dann so aus, dass durch den Übergabe-Parameter im Konstruktor abgefragt wird, welche Seite aktuell geladen wird, und dann geswitcht wird, welche Module in diese Seite geladen werden.

    Je nachdem, welche Seiteninhalte benötigt werden, werden die einzelnen Modul-Klassen aufgerufen und ausgeführt und geben, wie oben schon erwähnt, entweder wichtige Daten oder direkt den HTML-Quelltext zurück, der im Konstruktor der Hauptklasse in eine Output-Variable geschrieben wird und am Ende zurückgegeben wird.


    Ich frage mich jetzt nur: Ist das überhaupt sinnvoll, wie ich das machen will?!

    Oder sollte ich vielleicht erstmal die Finger von der OOP lassen und alles in einfache Funktionen packen?
    Wichtig ist, dass es einfach umzusetzen ist, ohne fortgeschrittene Kenntnisse von MVC, Frameworks oder dergleichen.


    Das, was programmiert werden soll, soll NICHT dem besten Programmierstil entsprechen (Übersichtlichkeit sollte natürlich schon gegeben sein), aber im Vordergrund steht, dass es einfach zu programmieren ist.

  • #2
    P.S. Es ist vermutlich sinnvoll das, was ich oben geschrieben habe, also den Funktionsaufruf in der Hauptklasse auf die Datenebene zu beschränken, diese zurückzugeben und das Ganze dann mit so ner Template-Klasse in HTML-Quelltext reinzupacken, oder? Und wenn ja, an welcher Stelle ruft man die Template-Klasse auf?

    Sorry, aber ich habe noch erhebliche Probleme Klassen so zu strukturieren, dass alles übersichtlich ist, logisch aufgebaut und so dass man vernünftig drankommt, man sie von außen aber nicht aufrufen kann (Sicherheit).

    Bisher habe ich nur Tutorials gefunden, die die grundsätzliche Funktionsweise von Klassen/Vererbung etc. erklären. Sobald aber ein Programm-Aufbau mit mehreren Klassen/Dateien beschrieben wurde, konnte ich nicht mehr folgen, da dann noch weitere Syntax/Funktionen etc. vorgekommen sind, von denen ich noch nie gehört habe.
    Muss ich mich wirklich erst noch tiefer in die Materie eingraben, bevor ich eine simple dynamische Seite bauen kann?

    Kommentar


    • #3
      Sorry, aber solche Allgemeinplätze kann wirklich niemand sinnvoll beantworten.
      [COLOR="#F5F5FF"]--[/COLOR]
      [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
      „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
      [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
      [COLOR="#F5F5FF"]
      --[/COLOR]

      Kommentar


      • #4
        Ok, ich dachte, ich hätte mich klar ausgedrückt.

        Was genau möchtest du denn noch wissen?

        Eigentlich bräuchte ich bloß die Information, wie ich am sinnvollsten einen HTML-Quelltext modulartig zusammenbaue und das evtl. objektorientiert. Packe ich jedes einzelne Modul in eine Klasse? Rufe ich diese Klassen von einer Hauptklasse aus auf? Rufe ich alles von der index.php aus auf? Ist es egal?

        Ich weiß, wie OOP funktioniert, zumindest die Grundlagen, aber ich weiß nicht, wie ich es in einer konkreten Anwendung anwende... Wo ich was hinschreiben muss... Wo HTML-Zeugs hinkommt und wo DB-Abfragen...

        Oder ist das auch egal, hauptsache es funktioniert?

        Kommentar


        • #5
          Worauf die Frage abzielt. Sidebar, index.php und OOP gehören einfach nicht in den selben Topf. Ein Thread, eine Frage bitte.
          [COLOR="#F5F5FF"]--[/COLOR]
          [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
          „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
          [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
          [COLOR="#F5F5FF"]
          --[/COLOR]

          Kommentar


          • #6
            Aber meine Frage ist ja gerade, wie das alles zusammenspielt....

            Ich wollte jetzt nicht wissen, wie ich eine Sidebar inhaltlich aufbaue, oder eine Liste erstelle, das waren nur Beispiele, um zu veranschaulichen, was ich überhaupt für Module meine, die dynamisch reingeladen werden sollen.

            Kommentar


            • #7
              Dafür gibt es kein festes Schema. Seitenstruktur, technischer Aufbau, phyische Struktur (Dateien, Ordner), inhaltliche Verwaltung - alles Einzelthemen, die unabhängig voneinander entschiedene werden müssen. Es gibt einige Pattern, die Teilabhängigkeiten erzeugen (bspw. eben MVC oder Command Control), aber Du willst es ja gleichzeitig einfach, übersichtlich und nicht advanced. Ergo kann man Dir nicht antworten.
              [COLOR="#F5F5FF"]--[/COLOR]
              [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
              „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
              [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
              [COLOR="#F5F5FF"]
              --[/COLOR]

              Kommentar


              • #8
                Hm, wenn das alles zusammen nicht realisierbar ist, dann kann man mir doch genau das sagen...

                Am Wichtigsten ist, dass es einfach ist, dann muss ich auf die Übersichtlichkeit eben verzichten.

                Ich würde ja gerne fortgeschritten programmieren, aber da ich das bisher noch nicht kann, versuche ich es erstmal in etwas simplerer Form.

                Ich dachte, jemand könnte mir vielleicht sagen, ob das, wie ich mir das vorgestellt habe, funktionieren kann und logisch ist (index ruft Hauptklasse auf -> Hauptklasse switcht Parameter (was der gewünschten Seite entspricht) und baut die entsprechenden Elemente aus neu aufgerufenen Klassen auf).

                Aber es scheint mir, dass fast jeder Weg irgendwie zum Ziel führen kann, nur ist eben jeder Weg unterschiedlich kompliziert und geeignet.

                Kommentar


                • #9
                  Ob es einfach ist entscheidet nicht die Menge an Möglichkeiten die es überhaupt gibt ein Projekt zu realisieren, sondern wie genau du das anstellst. Mal dir doch ein Schematisches Bild ( Papier vs. Stift = Bild ). Entscheide wenn du alles aufgemalt hast, was du davon Modularisieren willst ( In einer Klasse packst ). Wichtig sollte dir auch sein das du die abläufe vor Augen hast.
                  [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                  Kommentar


                  • #10
                    Danke, das war doch mal eine kurze aber hilfreiche Antwort.

                    Habe übrigens was gefunden, was mir, glaube ich, sehr weiterhilft, da hier genau das exemplarisch beschrieben wird, was ich vorhabe:

                    MVC mit PHP - Das MVC-PAttern mit PHP implementieren und verwenden

                    Meine Klassen werden natürlich ganz anders aussehen, aber das, was ich ja eigentlich brauchte war ja auch nur die grobe Struktur und so ne Art Leitfaden, auf den man aufbauen kann.

                    Kommentar


                    • #11
                      Ein Tip in eigener Sache, bei Templates brechen sich viele die finger, eine "große" ( aus deiner perspektive ) könnte die Hilfe von Smarty ( Template Engine für PHP ) sein: Smarty : Template Engine

                      Auch da gibbet nen tutorial für, sogar in deutsch, doku ebendso, einfach zu handhaben. das tolle: dein PHP Quellcode enthält 0,nix an HTML

                      PHP-Code:
                      require_once("path/to/smarty.class.php");
                      $smarty = new Smarty();

                      $daten = array("SiteTitle" => "Testseite""Content" => "ich bin ein text!");

                      $smarty->assign("MyProject"$daten);
                      $smarty->display("test.tpl"); 
                      das template:

                      Code:
                      <html>
                      <head><title>{$MyProject.SiteTitle}</title></head>
                      <body>{$MyProject.Content}</body>
                      </html>
                      Janz einfach
                      [URL="https://gitter.im/php-de/chat?utm_source=share-link&utm_medium=link&utm_campaign=share-link"]PHP.de Gitter.im Chat[/URL] - [URL="https://raindrop.io/user/32178"]Meine öffentlichen Bookmarks[/URL] ← Ich habe dir geholfen ? [B][URL="https://www.amazon.de/gp/wishlist/348FHGUZWTNL0"]Beschenk mich[/URL][/B].

                      Kommentar


                      • #12
                        Hm, hört sich gut an.

                        Hab schon viel dazu gelesen, aber da man, wenn man sich noch nicht so auskennt, nicht alles ausprobieren und ansehen kann, hab ich das bisher ignoriert.

                        Ich werds mir morgen mal ansehen. Wär ja ne super-Sache, danke schön.

                        So, und nun gute Nacht, ich schau morgen wieder rein.

                        Kommentar

                        Lädt...
                        X