Hi.
Was meinst Du denn mit "eine URL haben"?
Naja, eben die URL, die der Browser anfordert, die ist ja im PHP via $_SERVER Variable verfügbar. Wieso ist die Begrifflichkeit "eine URL haben" denn schon wieder verkehrt? :-(
Ein URL ist eine Zeichenkette. Eine Zeichenkette, die eine Ressource identifiziert. Und ein PHP-Skript, das vom Server aufgerufen wird, um diese Ressource zu produzieren und auszuliefern, interessiert sich in den allermeisten Faellen nicht dafuer, wie der aufgerufene URL ausgesehen hat.
Es gibt sicher Ausnahmen davon. Aber es war (mir) nicht klar, dass (und warum) Dein PHP-Skript sich fuer den aufgerufenen URL interessiert. Daher war das eine echte Frage. Und das "warum" ist mir immer noch nicht klar.
Aber ich dachte immer eine Abstraktion ist die Wirklichkeit in ein Objekt hineingepackt,
Ok, dann hoer jetzt bitte auf, das zu denken. :-)
Eine Abstraktion ist... ich versuchs mal: das Erstellen von Code (seien es Funktionen, Klassen, ...), der nicht nur eine ganz konkrete Aufgabe erfuellt, sondern so gestaltet ist, dass er flexibel fuer verschiedene, artverwandte Probleme eingesetzt werden kann.
Mal ein ganz einfaches Beispiel:
Stell Dir eine Email-Klasse vor, mit der Du aus Deinen PHP-Skripten heraus automatisch Emails versenden kannst, etwa an Kunden. (Oder auch eine Email-Funktion, was geht hier jetzt nicht um Klassen an sich).
Dann moechtest Du vielleictht, dass beim Abschicken der Email automatisch ein Email-Kopf mit Deinem Logo o.ae. eingebunden wird. Jetzt waere es schlecht, wenn der Email-Kopf hart kodiert in der Funktion steht, in der Art
$emailText = "<h1>www.example.com - automatische Email</h1>" . $emailText;
Dann kannst Du die Funktion naemlich nicht mehr gebrauchen, wenn Du
- entscheidest, auf Plaintext-Emails umzusteigen (was wuenschenswert waere),
- noch ne Website erstellst und von dort auch Emails verschicken willst, ohne diesen Header,
- Dein Logo aenderst.
Solche Dinge sollten aber nicht dazu fuehren, dass Du Deinen Programm-Code an 37 Stellen aendern musst. Also: Deine Email-Klasse sollte
- Dir erlauben, den Mime Type (text oder html) als Parameter zu setzen
- einen HTML-Kopf als Template einlesen, wenn gewuenscht
damit Du bis in alle Ewigkeit alle Deine Emails mit dieser Klasse, d.h. demselben Programm-Code, versenden kannst und lediglich andere Templates zur Verfuegung stellen oder vielleicht noch ein paar Konstanten aendern musst.
Das waere eine Abstraktion. Code unabhaengig von konkreten Umgebungsbedingungen schreiben.
Das true am Ende bedeutet nur das eben genau diese URL jetzt gültig ist, bzw. aufgerufen wird.
*wurde*, nicht wird (und: ein URL, also ein *String*, s.o.), wird nicht aufgerufen). Der Client hat mittels des URL die Ressource aufgerufen/angefordert, der Server hat das PHP-Skript gestartet. Alles laengst geschehen, alles ist in geordneten Bahnen. Wozu musst Du das jetzt extra im Skript behandeln?
Das ist die URL die vom Cliet kommt. Ich wollte aber versuchen das Skript unabhängig davon, von wo der Aufruf kommt zu gestalten. So das es am Ende von PHP, Client via User oder AJAX aufgerufen werden kann. Eben fast wie eine Funktion :-)
Ok.
Also das ganze soll dann so funktionieren das ich im PHP ein Objekt habe das alle aufrufbaren Seiten enthält.
Mein oben erzeugtes Objekt wird dann mit dem "Systemobjekt" verglichen, ob es die aufgerufene Webseite dort überhaupt existiert.
Tut sie das, wird die Seite aufgerufen und alle notwendigen PHP-Skripte dazu ebenfalls.
Existiert die aufgerufene Seite nicht, dann kommt eben ne 404-Seite.
Verstehe ich nicht. Das erledigt der Server doch fuer Dich, oder nicht? Er ruft das fuer die angeforderte Seite passende Skript auf. Sonst haettest Du edn URL ja nicht in der _SERVER-Variable zur Verfuegung.
Hast du eventuell einen Tipp wie man das besser lösen / gestalten könnte?
Was denn jetzt eigentlich? :-)
Meine Sache mit der dollen Galerie und dem Blog :-)
Ich hab keine Ahnung, wie Du es bisher loest. Das, was wir hier besprochen haben, hat weder mit ner Galerie noch mit nem Blog irgendwas zu tun. Oder?
Hör mal, um das schöne selfhtml-Forum nicht durch Grundsatzdebatten zu verschandeln (Was ich befürchte was wir nachdem du diesen Beitrag gelesen hast tun werden :-) ), wollen wir nicht via ICQ, Mail oder irgendwas anderes uns verständigen?
Lass uns ruhig hier bleiben, fuer Diskussionen ist das Forum doch da.
Viele Gruesse,
der Bademeister