Ankündigung

Einklappen
Keine Ankündigung bisher.

Website dynamisch gestalten

Einklappen

Neue Werbung 2019

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

  • Website dynamisch gestalten

    Hallo,

    ich habe vor längerer Zeit eine kleine Website (absolutes Anfänger-Niveau) erstellt und bin gerade dabei, diese mit Inhalten und Verzweigungen zu schmücken.

    Dabei fällt mir auf, dass es immer schwieriger und mühseeliger wird, alle Inhalte statisch zu lassen und dann teilweise jede html-Seite editieren zu müssen, wenn sich grundlegende Dinge ändern.

    Deshalb habe ich mir ein Konzept gemacht, zu dem ich gerne euer Feedback hätte:

    Beim ersten Website-Aufruf werden ein paar grundsätzliche Sessions angelegt (über welche auch geprüft wird, ob es der erste Aufruf war).

    Beim jedem weiteren Aufruf (Unterverzeichnisse) wird die passende php-Datei geladen und deren Inhalte in eine Session gespeichert.
    Dann wird immer eine "Layout.php" inkludiert, die nur noch das Template enthält und die Session ausgibt.

    Also kurzum --> Es werden php-Dateien geöffnet und deren Inhalte in Sessions geladen, welche dann in der Layout.php ausgegeben werden.

    Ich habe jetzt aber schon des Öfteren gelesen, dass es eigentlich genau andersrum sein sollte, sprich man hat zuerst die Layout.php und lädt von dort die passenden Dateien.
    Macht das denn so einen Unterschied?

    Ebenfalls habe ich schon gelesen, dass bei ganz dynamischen Websites die Inhalte von einer Datenbank geladen werden (dann wäre mir auch klar, dass der Ausgangspunkt eine Layout.php ist).. Aber meine Inhalte sind teilweise wirklich enorm lang (Zusammenfassungen vom Studium) --> ist es sinnvoll, solche Textriesen in Datenbanken zu speichern?

    Über einen kleinen Tipp wäre ich sehr dankbar.

    Mfg
    Kevin

  • #2
    Hi,

    Beim ersten Website-Aufruf werden ein paar grundsätzliche Sessions angelegt (über welche auch geprüft wird, ob es der erste Aufruf war).
    wofür genau brauchst du da bereits Sessions?

    Beim jedem weiteren Aufruf (Unterverzeichnisse) wird die passende php-Datei geladen und deren Inhalte in eine Session gespeichert.
    Dann wird immer eine "Layout.php" inkludiert, die nur noch das Template enthält und die Session ausgibt.
    ohne deinen Code zu kennen -> zu kompliziert.

    ist es sinnvoll, solche Textriesen in Datenbanken zu speichern?
    dafür sind Datenbanken ja da.

    Ein gängiges Architekturmuster für Software ist das MVC:

    http://de.wikipedia.org/wiki/Model_View_Controller


    Wenn du deinen code postest, können wir durchgehen und nach Optimierungen schauen.

    mfg wolf29
    while (!asleep()) sheep++;

    Unterschätze nie jemanden der einen Schritt zurück geht! Er könnte Anlauf nehmen.

    Kommentar


    • #3
      Hallo,

      merci für die rasche Antwort!
      ohne deinen Code zu kennen -> zu kompliziert.
      Ok, ich werde meinen Code mal auf das nötigste kürzen und hochstellen, damit ein paar Tipps drin sind.

      Aber wie schon gesagt, viel spannendes ist nicht dabei.
      Ich habe eine Management.php, welche am Anfang einer jeden php-Datei includiert wird. Diese enthält alle Funktionen (Login, Logout, update, initialisierung beim ersten Website-Aufruf etc.).
      Diese Management.php belegt auch meine Sessions:
      - Session mit Inhalt der Navigationen
      - Session mit Inhalt der aktuellen Seite (Überschrift und Kontent)
      - Session mit Referenzen für die jeweilige Seite (css-Dateien z.B.)

      Die Layout.php besteht fast ausschließlich aus HTML (Template), lediglich die eingefügten Sessions für das Template sind php-Code

      Ein gängiges Architekturmuster für Software ist das MVC:
      Aber genau das MVC-Modell repräsentiert ja mein Konzept.
      - Das Modell/View ist meine Layout.php
      - wird dann ein Unterverzeichnis gewählt bzw. ein Formular ausgefüllt --> jeweilige php-Datei wird geöffnet (Controller --> hier findet nur Verarbeitung und Inhalts-Speicherung in Sessions statt) --> dann wird wieder auf layout.php verwiesen..

      wofür genau brauchst du da bereits Sessions?
      Zum Beispiel für meinen Login. Beim ersten Website-Aufruf wird eine Session['logmode'] mit dem Wert 'false' angelegt.
      In meiner Layout.php kann ich somit abfragen, ob der Besucher schon eingeloggt ist oder nicht und abhängig davon in der Navigation den Link mit dem Namen "Login" oder eben "Logout" anzeigen lassen.
      (Vielleicht gibts da auch bessere Systeme für einen Login, aber so habe ich mir in meiner Grundlagenforschung selbst geholfen)

      Kommentar


      • #4
        Zitat von K.Beutler Beitrag anzeigen
        - Session mit Inhalt der Navigationen
        - Session mit Inhalt der aktuellen Seite (Überschrift und Kontent)
        - Session mit Referenzen für die jeweilige Seite (css-Dateien z.B.)
        Warum gehört das deiner Meinung nach in die Session? Was ist daran User/Client-bezogen und nur für einen bestimmten Zeitraum nötig? Das sind doch fast alles Daten die pro Aufruf ermittelt werden müssen. Oder fehlt dir einfach ein Ort an dem du alle Variablen die für die Layout.php nötig sind zwischenspeichern willst?
        [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

        Kommentar


        • #5
          Oder fehlt dir einfach ein Ort an dem du alle Variablen die für die Layout.php nötig sind zwischenspeichern willst?
          Jup exakt das ist es. Sessions wie die 'logmode' und ein paar andere sind user-bezogen und werden nicht auf jeder Seite aktualisiert.
          In der Tat wäre es für die Sessions des Layouts (die drei von dir genannten) nicht notwendig, aber ich dachte ich mache alles einheitlich in Sessions. Ist das ein Nachteil?

          Kommentar


          • #6
            Zitat von K.Beutler Beitrag anzeigen
            Also kurzum --> Es werden php-Dateien geöffnet und deren Inhalte in Sessions geladen, welche dann in der Layout.php ausgegeben werden.
            Über Kurz oder Lang müllst du dir damit natürlich die Session zu, was z.B. die Wartbarkeit und das Debugging verkompliziert. Du brauchst nur ein besseres Konzept für die Übergabe deiner Variablen, hast du dich mal mit Templatesystemen auseinandergesetzt?

            http://de.wikipedia.org/wiki/Templat...s_f.C3.BCr_PHP
            [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

            Kommentar


            • #7
              Hey wenn ich deinem Link folge lese ich im ersten Satz:
              PHP selbst ist bereits so entworfen, dass man programmiersprachliche Konstrukte mit der textuellen Ausgabe über Platzhalter bzw. gekennzeichnete Bereiche mischen kann.
              -- Codebeispiel mit exakt meinem Schema, lediglich Verwendung einer Variable statt einer Session --
              Die Verwendung einer gesonderten Template-Engine für PHP ist daher nicht erforderlich
              Dann bleibe ich bei meinem Schema und erspare mir etwas Arbeit.
              Aber ich werde deinem Rat folgen und keine Sessions für die Variablen-Füllung meiner Layout.php verwenden.

              Was hältst du von der Idee, alle Seiten meiner Website in eine Datenbank umzulagern --> Dann hätte ich außer der Layout.php und den php-Dateien für die Rechenschritte gar keine Verlinkungen mehr auf meiner Website. Ich denke das würde vieles einfacher machen.
              Im Web habe ich jetzt schon oft gehört, dass das der Schritt zur richtigen Dynamik einer Website sei...

              Was meint ihr?

              Kommentar


              • #8
                Suchst du konzeptionell nach CMS (Content Management System)?
                [I]You know, my wife sometimes looks at me strangely. „Duncan“, she says, „there's more to life than Solaris“. Frankly, it's like she speaks another language. I mean, the words make sense individually, but put them together and it's complete nonsense.[/I]

                Kommentar


                • #9
                  die Sessions des Layout
                  bei so einem Ausdruck fällt mir nur eins ein: Investiere 1 - 2 Stunden in ein Anfängertutorial und wundere Dich dann über Deine neue Sicht auf die Dinge.
                  [B]Es ist schon alles gesagt. Nur noch nicht von allen.[/B]

                  Kommentar


                  • #10
                    bei so einem Ausdruck fällt mir nur eins ein: Investiere 1 - 2 Stunden in ein Anfängertutorial und wundere Dich dann über Deine neue Sicht auf die Dinge.
                    Ich habe bereits "Anfänger-Tutorials" durchgemacht und in keinem etwas über die Nachteile der definitiv begrenzen Verwendung von Sessions für solche Zwecke gelesen.
                    Mag sein, dass man für die fünf Platzhalter, die ich in meinem Layout verwende, lehrbuchgerecht Variablen verwendet, aber was sind genau meine Nachteile wenn ich eben diese durch Sessions ersetze? An der Übersichtlichkeit kann es wohl kaum liegen, da ich allgemein wenig Sessions verwende und diese alle gut im Überblick habe. Da finde ich die Verwendung von Variablen, welche gerne doppelt in verschiedenen Gültigkeitsbereichen vorkommen können, sehr viel unübersichtlicher.

                    Ich bin natürlich gerne für Kritik offen, wo der Nachteil ist, zumal ich meine Konstruktion jetzt sowieso umgestalte und alles von Datenbanken abrufen werde.

                    Lg

                    Kommentar


                    • #11
                      Zitat von K.Beutler Beitrag anzeigen
                      Hey wenn ich deinem Link folge lese ich im ersten Satz:

                      Dann bleibe ich bei meinem Schema und erspare mir etwas Arbeit.
                      Aber ich werde deinem Rat folgen und keine Sessions für die Variablen-Füllung meiner Layout.php verwenden.

                      Was hältst du von der Idee, alle Seiten meiner Website in eine Datenbank umzulagern --> Dann hätte ich außer der Layout.php und den php-Dateien für die Rechenschritte gar keine Verlinkungen mehr auf meiner Website. Ich denke das würde vieles einfacher machen.
                      Im Web habe ich jetzt schon oft gehört, dass das der Schritt zur richtigen Dynamik einer Website sei...

                      Was meint ihr?
                      Es gibt Template-Engines die primär eine neue "Template-Sprache" implementieren ( und somit auch compile overhead ) und Template-Engines die primär Templating ermöglichen. Zu letzteres rate ich ( wir ) dir.

                      Schau mal da rein: http://platesphp.com/

                      @Sessions: Sessions speichern Zustände, nicht mehr. Wenn du cross-(domain/page/call) etwas verfügbar machen willst nutze einen Cache.
                      [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
                        Compile-Overhead wird aber irrelevant wenn das kompilierte Template in einem Cache gespeichert wird. Sofern das gegeben ist, kann man solche Engines ebenfalls bedenkenlos einsetzen.

                        Kommentar


                        • #13
                          Zitat von monolith Beitrag anzeigen
                          Compile-Overhead wird aber irrelevant wenn das kompilierte Template in einem Cache gespeichert wird. Sofern das gegeben ist, kann man solche Engines ebenfalls bedenkenlos einsetzen.
                          Das ist korrekt, da er ( soweit ersichtlich ) aber eh bei plain-php templating bleiben möchte bietet sich platesphp nahezu an, da es templating wie man es von bspw. twig kennt auf php-level realisiert.
                          [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


                          • #14
                            Hui, super Tipp! Das Plates-Konzept klingt eigentlich ganz genau nach dem, was ich mir vorgestellt habe!

                            Werde mir das gleich mal runterladen und die Syntax durchstöbern.

                            Das ist korrekt, da er ( soweit ersichtlich ) aber eh bei plain-php templating bleiben möchte bietet sich platesphp nahezu an, da es templating wie man es von bspw. twig kennt auf php-level realisiert.
                            Jups, genau so ist es. Ich bin mit PHP selbst schon genug bedient, da ich das nur als Hobby während dem Studium mache. Je simpler meine Website da gehalten ist, desto besser.

                            Kommentar


                            • #15
                              Simple definiert sich nicht unbedingt durch die nicht-Verwendung eines Layers ( wie eine Sprache in einer Sprache ). Sondern durch das einfache nicht aufwändige verwenden von Komponenten.

                              Auch eine Webseite mit Silex, Twig und jQuery kann simple sein.
                              [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

                              Lädt...
                              X