frankx: URL-Verarbeitung per RewriteRules oder PHP-Skript

Hellihello

gibt es einen Leitfaden o.ä., in welchen Fällen eher per RewriteRule oder RewriteCond die URL aufgeschlüsselt werden sollte oder ist das im Grunde nach Belieben und eher eine Frage der persönlichen Vorliebe?  Alternative wäre ja, per

  
RewriteRule (.*) my_rewrite.php  

alle URLs grundsätzlich erstmal an ein einziges Skript weiterzuleiten (my_rewrite.php) und dort im Skript dann die URL ($_SERVER["REQUEST_URI"] und $_SERVER["HTTP_HOST"]) nach relevanten Bestandteilen zu zerlegen und die Weiterverarbeitung bzw. Antwort zu entscheiden?

Dank und Gruß,

frankx

  1. Moin!

    gibt es einen Leitfaden o.ä., in welchen Fällen eher per RewriteRule oder RewriteCond die URL aufgeschlüsselt werden sollte oder ist das im Grunde nach Belieben und eher eine Frage der persönlichen Vorliebe?

    Ja, alles eine Frage der Vorliebe. Ich persönlich stehe nicht so darauf, in den Rewrite-Rules alle Feststellungen in irgendwelche URL-Parameter reinzupflanzen. Schließlich ist das Rewriting per .htaccess nicht gerade wunderbar performant und daher zu vermeiden - es gehört eigentlich in die httpd.conf platziert. Dort aber kann man es nicht ohne Serverneustart ändern, also ist es hilfreich, wenn eine generische RewriteRule alle Aufgaben erledigt, die man durch passende PHP-Programmierung dann verfeinert.

    - Sven Rautenberg

    --
    "Love your nation - respect the others."
    1. Hellihello Sven,

      Dank für die Antwort.

      Schließlich ist das Rewriting per .htaccess nicht gerade wunderbar performant und daher zu vermeiden - es gehört eigentlich in die httpd.conf platziert.

      Aha, dann wäre also am Besten eine RewriteRule in der .conf des zugehörigen vhosts platziert?

      Dort aber kann man es nicht ohne Serverneustart ändern, also ist es hilfreich, wenn eine generische RewriteRule alle Aufgaben erledigt,

      Es sei denn, das ist eben eine grundsätzliche Entscheidung, dann macht das ja nur einen Neustart nötig.

      Dank und Gruß,

      frankx

    2. Hi Sven,

      [...] eine generische RewriteRule alle Aufgaben erledigt, die man durch passende PHP-Programmierung dann verfeinert.

      So macht es übrigens auch das Zend Framework (Open Source) mit seinem MVC-Konzept (en) namens Zend_Controller, mit welchem ich bis jetzt durchweg positive Erfahrungen gemacht habe und es deshalb weiterempfehlen kann. :-)

      Viele Grüße,
        ~ Dennis.

      1. Hellihello Dennis,

        So macht es übrigens auch das Zend Framework (Open Source) mit seinem MVC-Konzept (en) namens Zend_Controller, mit welchem ich bis jetzt durchweg positive Erfahrungen gemacht habe und es deshalb weiterempfehlen kann. :-)

        Das quasi das Pendant zu Ruby-On-Rails? Beim Googlen fand ich eben dazu http://blog.nothing.ch/tag/framework/, allerdings auch schon wieder ein Jährchen alt. Da ging es ja um die konkrete Kritik an den JSON-Funktionen. BTW: Nutzt du diese und wenn ja die Funktionen des Frameworks oder die von PHP seit Version 5.2. mitgebrachten?)

        Ist das ganze nicht aber auch vergleichbar mit der Enwicklung die Struppi im Weblog bzgl. Javscript beschreibt (http://aktuell.de.selfhtml.org/weblog/javascript-bibliotheken)?

        Und welche "Rolle" spielt in dem Zusammenhang PEAR (http://pear.php.net)?

        Dank und Gruß,

        frankx

        1. Hi frankx,

          [Zend Framework ist] quasi das Pendant zu Ruby-On-Rails?

          Jein. Ich habe mir gerade mal ein paar Screencasts zu Ruby-on-Rails angeschaut - es scheint mir, als würde RoR mehr darauf ausgelegt sein, bereits Code zu produzieren, den du dann nur noch leicht an deine Bedürfnisse anpassen musst. Zend Framework ist in meinen Augen mehr dafür gedacht, dich beim Programmieren zu unterstützen (was es IHMO auch gut tut), wo du aber letztendlich selber noch programmieren musst.

          Beim Googlen fand ich eben dazu http://blog.nothing.ch/tag/framework/, allerdings auch schon wieder ein Jährchen alt. Da ging es ja um die konkrete Kritik an den JSON-Funktionen. BTW: Nutzt du diese und wenn ja die Funktionen des Frameworks oder die von PHP seit Version 5.2. mitgebrachten?)

          Bei meinem letzten Projekt mit JSON kam das Zend Framework nicht zum Einsatz womit sich die Frage nach Zend_Json erübrigt *g*, allerdings habe ich schon mal etwas damit getestet und plane es in einem derzeitigen Projekt an dem ich gerade arbeite in Zukunft einzusetzen.

          Die von dir gefundenen Beschwerden kann ich nicht nachvollziehen. Damals war das Zend Framework noch ein einem Beta-, wenn nicht sogar Alpha-Stadium. (Die Behauptung stable stimmt nicht, nur weil etwas im SVN-Repository ist, heißt das nicht, dass es stable ist.) Die erste stabile Version (1.0.0) ist Ende Juni rausgekommen, also noch gar nicht lange her.

          Ist das ganze nicht aber auch vergleichbar mit der Enwicklung die Struppi im Weblog bzgl. Javscript beschreibt (http://aktuell.de.selfhtml.org/weblog/javascript-bibliotheken)?

          Ja, sicherlich. Wobei ich Struppis negative Anmerkungen nicht 1:1 auf ein PHP-Framework übertragen würde. Sicherlich kann man auch mit dem Zend Framework viel machen, ohne seine Internas kennen zu müssen, sobald einem aber irgendwelche Standards nicht gefallen (z.B. die URLs, Parameter in den URLs, Namen der Models, der Controllers, Initialisierung der Models, automatisches Rendern der View), dann habe ich mir immer so geholfen, dass ich eine eigene Klasse schreibe, z.B. My_Controller_Action, abgeleitet von Zend_Controller_Action und darin dann meine Änderungen vornehme, also patche. Dabei lernst du dann noch schnell genug Details zum Zend Framework kennen, glaub mir ;-)

          Und welche "Rolle" spielt in dem Zusammenhang PEAR (http://pear.php.net)?

          Gar keine, zum Glück. Zend Framework benötigt PHP 5.1.4 (oder später) und diese PHP-Extensions. Mehr nicht. Ich persönlich mag PEAR auch überhaupt nicht, da die Code-Qualität meines Erachtens schlecht und hoffnungslos veraltet ist - alles was ich von PEAR gesehen habe ist heute noch PHP 4.

          Viele Grüße,
            ~ Dennis.

          1. Hellihello Dennis,

            merci!

            Gar keine, zum Glück. Zend Framework benötigt PHP 5.1.4 (oder später) und diese PHP-Extensions. Mehr nicht.

            D.h., PHP muss mit all diesen Extension mit ./configure ... --enable / --with ... kompiliert werden?

            Dank und Gruß,

            frankx

            1. Hi frankx,

              D.h., PHP muss mit all diesen Extension mit ./configure ... --enable / --with ... kompiliert werden?

              Nein, die dort gelisteten Extensions sind alle, die PHP hat *g* Du benötigst nur die, wo bei Usage Type "Dependency" steht, und selbst die benötigst du nur dann, wenn du eine der rechts daneben aufgelisteten Komponenten des Zend Frameworks nutzen willst.

              Ob die Extensions in PHP einkompiliert oder als dynamische Extension geladen werden ist hierbei gänzlich egal.

              Viele Grüße,
                ~ Dennis.

              1. Hellihello Dennis,

                gestern zu später nachtstunde stöberte ich dort noch rum und fand "installation" und unix/linux, dort aber nur "gentoo". Fürs kurze Verständnis für Zwischendurch: brauch ich eine komplette Entwicklungsumgebung wie bei RoR, also muss ich was "installieren" oder ist es eine Bibliothek, die ich includen muss (a la scriptacolous und Konsorten)?

                Dank für einen kleinen hint und Gruß,

                frankx

                1. Hi frankx,

                  [...] muss ich was "installieren" [...]?

                  Nein, einfach herunterladen, entpacken und die benötigten Komponenten includen.

                  Du kannst dir, wenn du willst dann noch Zend Studio kaufen (als Schüler/Student gar nicht mal so teuer). Ich mag Zend Studio insofern, als es eine Code-Vervollständigung für das Zend Framework bietet, was die Arbeit IHMO erleichtert. Aber du kannst natürlich mit jedem beliebigen Editor programmieren.

                  Viele Grüße,
                    ~ Dennis.

        2. Hallo,

          Ist das ganze nicht aber auch vergleichbar mit der Enwicklung die Struppi im Weblog bzgl. Javscript beschreibt (http://aktuell.de.selfhtml.org/weblog/javascript-bibliotheken)?

          Ich bin übrigens nicht identisch mit Struppi, ich bin froh, dass es ihn zusätzlich gibt. ;)

          Mathias

          1. Hellihello molily=&Mathias,

            Ich bin übrigens nicht identisch mit Struppi, ich bin froh, dass es ihn zusätzlich gibt. ;)

            Oh, peinlich. Aber nett formuliert von Dir (;0)

            Dank und Gruß,

            frankx