Joomla! Programmierung/Framework/JURI
Inhaltsverzeichnis |
JURI bietet eine Reihe von Methoden und Eigenschaften für die Behandlung von Uniform Resource Identifiers (URIs). Es bietet auch eine Möglichkeit um die URI des aktuellen Requests zu ermitteln, unabhängig von dem Webserver auf dem Joomla! läuft.
Die Struktur der URI ist definiert in der RFC3986. Das folgende Beispiel wurde aus diesem Dokument entnommen.
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
Die Komponenten Schema (scheme) und Pfad (path) sind erforderlich, der Pfad kann jedoch auch leer sein (keine Zeichen).
Wenn die Autorität (authority) angegeben wird, muss der Pfad entweder leer sein oder mit einem Slash ("/") beginnen. Wird die Autorität nicht angegeben, darf der Pfad nicht mit zwei Slash-Zeichen beginnen ("//").
Das Schema gibt normalerweise das Internetprotokoll an welches genutzt wird, um auf die Resource zuzugreifen. Zum Beispiel bedeutet 'http', dass das HyperText Transfer Protocol genutzt werden soll.
Das Feld Autorität kann unterteilt werden in die Teile Benutzerinformationen, Host und Portnummer. Die Benutzerinformationen erlauben der URI Informationen zur Autentifizierung zu enthalten, normalerweise 'username:password', auch wenn dieses Format veraltet ist, da "Das Versenden von Benutzerinformationen im Klartext erwiesenermassen in nahezu allen Fällen in denen es eingesetzt wurde ein Sicherheitsrisiko darstellt".
Da im Internet jedoch immer noch URIs anzutreffen sind die Informationen zur Autentifizierung enthalten, wird die JURI Klasse weiterhin die Generierung und Verarbeitung von Informationen zur Autentifizierung unterstützen.
Der Query Teil kann mehrere Elemente, getrennt durch '&', enthalten.
Die JURI Klasse ist gewissermassen eine Wrapper-Funktion für die PHP Funktion parse_url.
[Bearbeiten] Definiert in
[Bearbeiten] Erweitert
[Bearbeiten] Get und Set Methoden
Get und Set Methoden werden für alle Teile der URI bereitgestellt. Es werden folgende Namen benutzt:
http://fredbloggs:itsasecret@www.example.com:8080/path/to/Joomla/index.php?task=view&id=32#anchorthis
\__/ \________/ \________/ \_____________/ \__/\_______________________/ \_____________/ \________/
| | | | | | | |
scheme user pass host port path query fragment
Die Spalte "Beispiel" in der folgenden Tabelle zeigt das Resultat jeder Get Methode aus der obigen URI.
| Get Methode | Set Methode | Beschreibung | Beispiel |
|---|---|---|---|
| getFragment | setFragment | Fragment (alles nach dem '#'). Dies wird auch oft als Anker bezeichnet. | anchorthis |
| getHost | setHost | Hostname or IP Adresse. Zum Beispiel www.joomla.org oder 192.168.2.45. | www.example.com |
| getPass | setPass | Password Teil der authority. | itsasecret |
| getPath | setPath | Path Zeichenkette. Beachten Sie, dass der Pfad immer eine vorangestelltes "/" Zeichen enthält. | /path/to/Joomla/index.php |
| getPort | setPort | Port Nummer. Bestimmte Schemata (Protokolle) haben Ihre eigenen Standardwerte (z.B. 'http' hat Port 80, 'ftp' hat Port 21). | 8080 |
| getQuery | setQuery | Query im Stringformat. Zum Beispiel "foo=bar&x=y". Siehe auch JURI->buildQuery(). | task=view&id=32 |
| getScheme | setScheme | Scheme (Protokoll). Zum Beispiel 'http', 'https', 'ftp'. | http |
| getUser | setUser | Username Teil der Autorität. | fredbloggs |
| getVar | setVar | Ein bestimmtes Queryelement aus dem Querystring. Siehe auch JURI->delVar(). | 32 |
[Bearbeiten] Andere Methoden
| Name | Beschreibung |
|---|---|
| base | Gibt die Stamm-URI des Requests, unabhängig vom URI Objekt, zurück. |
| buildQuery | Erstellt den Query Teil der URI mit Hilfe eines Arrays aus Queryelementen. |
| current | Gibt die aktuelle URI des Requests ohne den Query Teil zurück, unabhängig vom URI Objekt. |
| delVar | Löscht ein bestimmtes Queryelement. Siehe auch JURI->getVar() und JURI->setVar(). |
| getInstance | Gibt eine Referenz auf das globale JURI Objekt zurück, oder erstellt es, wenn es noch nicht existiert. Das globale URI Objekt beinhaltet die URI die zum erscheinen der aktuellen Seite geführt hat. |
| isInternal | Prüft ob eine URI intern, also auf dem gleichen Host wie Joomla!, ist. |
| isSSL | Prüft ob die URI das 'https' Schema (Protokoll) benutzt. |
| parse | Analysiert die URI und füllt die Felder der Klasse. |
| root | Gibt die Root-URI des Requests, unabhängig vom URI Objekt, zurück. |
| toString | Gibt die komplette URI des URI Objekts im Stringformat zurück. |
[Bearbeiten] Importieren
jimport( 'joomla.environment.uri' );
Die Klasse steht global zur Verfügung.