Ingo Siemon: Navigation auslagern per PHP oder SSI ?

Hallo

Ich möchte meine Navigation, welche ja auf allen Seiten
immer wieder gleich ist, gerne in einer externen Datei auslagern.

Nun überlege ich, ob ich das am besten mit PHP oder SSI mache.
Ich habe neulich mal gelesen, dass es immer sinnvoll sein soll,
SSI statt PHP einzusetzen, wenn möglich, wegen Geschwindigkeitsvorteil.

Was könnt Ihr mir denn dazu raten?
Gruß
Ingo

  1. Hello out there!

    Was könnt Ihr mir denn dazu raten?

    KISS: keep it simple, stupid.

    Also die einfachste Technik einsetzen, die das Benötigte kann. Das wäre SSI.

    (Es spricht auch nichts dagegen, einige Seiten, die mehr serverseitige Logik erfordern, mit PHP zu machen. Die Menü-Include-Datei bleibt ja dieselbe.)

    See ya up the road,
    Gunnar

    --
    “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
    1. hallo Gunnar,

      Also die einfachste Technik einsetzen, die das Benötigte kann.

      ACK

      Das wäre SSI.

      Keinesfalls, wenn es eben um "Navigation" geht. Man kann tatsächlich auch mit SSI geradezu abgrundtiefe Navigationsleisten bauen, aber die können dann überaus kompliziert aussehen.

      Grüße aus Berlin

      Christoph S.

      --
      Visitenkarte
      ss:| zu:) ls:& fo:) va:) sh:| rl:|
      1. Hello out there!

        Das wäre SSI.

        Keinesfalls, wenn es eben um "Navigation" geht.

        Wie meinen?

        Ich denke, es geht um die serverseitige Einbindung eines kleinen Stück Quelltextes aus einer Datei.

        Oder was hast du im Sinn? Die Nichtverlinkung der aktuellen Seite? Auch das geht mit SSI einfach.

        See ya up the road,
        Gunnar

        --
        “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
        1. Lieber Gunnar

          Ich denke, es geht um die serverseitige Einbindung eines kleinen Stück Quelltextes aus einer Datei.

          Oder was hast du im Sinn? Die Nichtverlinkung der aktuellen Seite? Auch das geht mit SSI einfach.

          Nein, nein, es ist schon richtig.
          Es geht tatsächlich nur um die Einbindung eines kleinen Stück
          Quelltextes aus einer Datei.

          Dazu noch 2 Fragen:

          1. Wenn ich nun SSI dafür verwende, müssen die Dateinamen
          doch auf .shtml enden, oder?

          2. Und wenn ich später für andere Dinge auch noch PHP einsetzen will,
          müssen die Dateienamen doch auf .php enden.

          Wie macht man es denn dann, wenn man auf einer Seite
          also in einer Datei beide Techniken (SSI und PHP) einsetzen möchte?

          Gruß
          Ingo

          1. Hallo Ingo,

            Wie macht man es denn dann, wenn man auf einer Seite
            also in einer Datei beide Techniken (SSI und PHP) einsetzen möchte?

            PHP bietet erheblich mehr Möglichkeiten als SSI. Das Modul ist deshalb auch erheblich größer. Daher arbeitet PHP nicht so schnell, wie SSI - der Unterschied ist aber eher für große wirklich Resourcen verbrauchende Projekte in der Betrachtung relevant.

            Wie Gunnar bereits anmerkte, sollte Dich KISS bei Deinen Überlegungen leiten. Bisher ist Dir zu SSI geraten worden. Nur wenn PHP eh zum Einsatz kommt/kommen soll, dann würde ich KISS dahingehend umsetzen, daß nur eine Technik zum Tragen kommt. Das wäre in dem Fall PHP.

            Gruß aus Berlin!
            eddi

            --
            Wer Rechtschreibfehler findet, darf sie behalten.
            1. Lieber eddi

              Daher arbeitet PHP nicht so schnell, wie SSI - der Unterschied ist aber eher für große wirklich Resourcen verbrauchende Projekte in der Betrachtung relevant.

              OK, ich verstehe.
              Also für so "Kleinigkeiten" wie das Einbinden einer einfachen
              Navigation ist der Unterschied in der Geschwindigkeit nicht so riesig ... richtig?

              Nur wenn PHP eh zum Einsatz kommt/kommen soll, dann würde ich KISS dahingehend umsetzen, daß nur eine Technik zum Tragen kommt. Das wäre in dem Fall PHP.

              OK, habe verstanden.

              Gruß
              Ingo

              1. Re:

                Daher arbeitet PHP nicht so schnell, wie SSI - der Unterschied ist aber eher für große wirklich Resourcen verbrauchende Projekte in der Betrachtung relevant.

                Also für so "Kleinigkeiten" wie das Einbinden einer einfachen
                Navigation ist der Unterschied in der Geschwindigkeit nicht so riesig ... richtig?

                Der Unterschied liegt eher darin, daß PHP wegen Vorteilen bei der Systemnutzertrennung zumeist als CGI-Version gebraucht findet während SSI als Webservermodul vorliegt. Der Geschwindigkeitsunterschied ist riesig, aber unerheblich, da es hier um Millisekundenbereiche geht. Wichtiger ist, ab wann die Maschiene wegen zuvielen Anfragen den Arbeitsspeicher durch Festplattenspeicher erweitern muß, um PHP auszuführen. Diese Überlegungen sind deswegen bei kleinen Projekten zu vernachläßigen. Da hat sich der Provider vorher schon einen Kopf drum gemacht.

                Gruß aus Berlin!
                eddi

                --
                Wer Rechtschreibfehler findet, darf sie behalten.
            2. Hello out there!

              Bisher ist Dir zu SSI geraten worden. Nur wenn PHP eh zum Einsatz kommt/kommen soll, dann würde ich KISS dahingehend umsetzen, daß nur eine Technik zum Tragen kommt.

              Meinst du auf einer Seite oder in einer Site?

              Beide Techniken auf einer Seite – geht das überhaupt?

              Beide Techniken in einer Site – warum nicht? Spricht doch nichts gegen foo.shtml neben bar.php.

              Und wenn eine vormals SSI-Seite in PHP geändert wird, ist es ein Leichtes, aus
                <!--#include virtual="/quz" -->
              dann
                <?php [code lang=php]readfile($_SERVER['DOCUMENT_ROOT'].'/quz'); ?>[/code]
              zu machen.

              Bei entsprechendem URI-Design müssen dann auch keine Links geändert werden (anderes Posting von mir).

              See ya up the road,
              Gunnar

              --
              “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)
              1. Mojens!

                Meinst du auf einer Seite oder in einer Site?

                Hier meinte ich eine Site.

                Beide Techniken auf einer Seite – geht das überhaupt?

                Es müßte gehen (selbst habe ich es nicht getestet), wenn eines der beiden Techniken als Filter genutzt wird.

                Beide Techniken in einer Site – warum nicht? Spricht doch nichts gegen foo.shtml neben bar.php.

                (Persönlich versuche ich mit so wenig Techniken zu arbeiten, um Fehlerquellen durch Kenntnismangel zu vermeiden. SSI ist keine schwere Sache, aber mit PHP kenne ich mich besser aus. Letztentlich ist es, wenn eben keine Gründe -wie eine mögliche Serverüberlastung- zu berücksichtigen sind, eine Geschmackssache.)

                Offengestanden halte ich das für einen Streit um des Kaisers Bart. Da gibt es doch nettere Themen, wie Datenbanken gegen Flatefilen, HTML gegen XHTML und immer wieder gerne genommen PHP gegen Perl...

                Und wenn eine vormals SSI-Seite in PHP geändert wird, ist es ein Leichtes, aus
                  <!--#include virtual="/quz" -->
                dann
                  <?php [code lang=php]readfile($_SERVER['DOCUMENT_ROOT'].'/quz'); ?>[/code]
                zu machen.

                Stimme ich Dir auch zu. Und nu? ;)

                Gruß aus Berlin!
                eddi

                --
                Wer Rechtschreibfehler findet, darf sie behalten.
          2. Hello out there!

            1. Wenn ich nun SSI dafür verwende, müssen die Dateinamen
              doch auf .shtml enden, oder?

            Nein. Du könntest dem Server auch sagen, bei anderen Endungen nach SSI zu parsen:
              AddHandler server-parsed foo bar

            Oder du setzt
              XBitHack on
            dann werden HTML-Dateien mit gesetztem Executable-Bit (Datei-Rechte z.B. 755) geparst, solche mit nicht gesetztem Executable-Bit (z.B. 644) nicht.

            1. Und wenn ich später für andere Dinge auch noch PHP einsetzen will,
              müssen die Dateienamen doch auf .php enden.

            Nein. Du könntest dem Server auch sagen, bei anderen Endungen nach PHP zu parsen.

            Deshalb setze ich gern Multiviews ein: Ich verweise auf eine Ressource 'http://example.net/foo'; das mag jetzt eine Datei foo.shtml ansprechen, später mal foo.php ... Die Links dorthin müssen nicht geändert werden. [1, 2, 3]

            Wie macht man es denn dann, wenn man auf einer Seite
            also in einer Datei beide Techniken (SSI und PHP) einsetzen möchte?

            Wüsste nicht, dass das ginge.

            See ya up the road,
            Gunnar

            --
            “Remember, in the end, nobody wins unless everybody wins.” (Bruce Springsteen)