Class URI
URI
Diese Klasse bildet eine URI ab und ist im wesentlichen für Stringoperationen gedacht. Nach dem aktuellen Standard RFC 3986 besteht ein URI aus fünf Teilen: scheme (Schema), authority (Anbieter), path (Pfad), query (Abfrage) und fragment (Teil). Nur das Schema und der Pfad müssen in jedem URI vorhanden sein. Die generische Syntax ist
foo://example.com:8042/over/there?name=ferret#nose
\_/ \______________/\_________/ \_________/ \__/
| | | | |
scheme authority path query fragment
| _____________________|__
/ \ / \
Neben hirachischen URI gibt es auch noch andere Vertreter, wie z.B. beim Telefon-Schema: tel. Mit der Methode isOpaque kann man herausfinden, um welche Art der URI es sich handelt.
- Alvine\Core\Alvine implements Serializable uses Alvine\Core\SerializableImplementation
- Alvine\Net\Resource\URI
Direct known subclasses
Alvine\Net\Resource\IRIPackage: Alvine\Net\Resource
Category: Framework
License: Licence
Author: schukai GmbH info@schukai.de
Version: Release: $Revision: 173 $
Since: 20121223
See:
http://www.rfc-editor.org/rfc/rfc3966.txt Telefon-URI
Diese Klasse implementiert keinerlei Netzwerk-Optionen
,wie z.B. das holen von Inhalten. Die wichtigsten Schemas sind als Konstanten definiert eine vollständige Liste inklusiver Verlinkung zu den Spezifikationen kann beim IANA abgerufen werden.
See: http://www.iana.org/assignments/uri-schemes.html
See:
http://mathiasbynens.be/demo/url-regex
Abgeleitete Klassen
,können für die verschiedenen Schemas spezialisierte Versionen bereitstellen.
Die Klasse stellt Methoden zur Anpassung der URI bereit. Allerdings kann werder der Host noch das Schema nachträglich geändert werden. Soll ein anderes Schema verwendet werden
,so muss ein neues URI-Objekt verwendet werden. Das ist notwendig
,damit bei abgeleiteten Klassen kein falsches Schema verwendet wird.
Schema und Pfad sind Pflichtfelder.
Link: Alvine
Link: Beschreibung
Link: Cool URIs don't change
Located at net/resource/URI.class.php
public
|
#
__construct( string $uri = null )
Erstellt ein neues URI-Objekt oder wirft im Fehlerfall eine Exception. Das Schema und der Pfad sind Pflichtangaben und führen, wenn diese fehlen, zu einem Fehler. |
protected
Alvine\Types\Collection<\Alvine\Types\KeyValue>
|
|
protected
|
|
protected static
array|boolean
|
|
public
boolean
|
|
public
boolean
|
|
public
boolean
|
|
public
string|null
|
|
public
string
|
|
public static
array
|
|
public
string
|
|
public
|
#
setUser( string $user )
Diese Methode setzt den Benutzernamen, der in der URI verwendet werden soll. Aus Sicherheitsgründen, sollten jedoch keine Anmeldedaten über die URI gesendet werden. |
public
string|null
|
|
public
|
#
setPassword( string $password )
Diese Methode setzt das Passwort, das in der URI verwendet werden soll. Aus Sicherheitsgründen, sollten jedoch keine Anmeldedaten über die URI gesendet werden. |
public
string|null
|
|
public
|
|
public
string|null
|
|
public
|
#
setQuery( string|
Setzt den Abfrageteil von Werten die URLCodiert sind |
public
|
|
public
|
#
setQueryValue( string $key, string $value )
Schlüssel/Wert-Paar in der URL (Query) setzen Sind mehrere identische Paare gesetzt, so werden die Werte bis auf einen entfernt |
public
|
#
appendQueryValue( string $key, string $value )
Anders als \Alvine\Net\Resource\URI::setQueryValue() fügt diese Methode Werte zu der Query-Liste hinzu. Ein mehrmahliger Aufruf hat zur Folge, dass mehrere Parameter angehängt werden. |
public
string|null
|
|
public
|
|
public
Alvine\Types\Collection<\Alvine\Types\KeyValue>
|
|
public
|
#
setFragment( string $fragment )
Setzt das Fragment (den reletiven Pfad innerhalb einer Ressource. Dieser wird mit einem # abgegrenzt. |
public
string|null
|
|
public
boolean
|
|
public static
boolean
|
|
protected
string
|
|
public
string
|
|
public
|
|
public static
|
|
public static
|
__call(),
__clone(),
__get(),
__set(),
equals(),
getClass(),
getClone(),
getClosure(),
getHashCode(),
getID(),
getShortID(),
isCallable(),
isInstanceOf(),
propertyExists()
|
serialize(),
unserialize()
|
checkAndAdjustSerialisation(),
serialize(),
unserialize()
|
string |
SCHEME_DATA
Data-URL: direkt eingebettete Daten |
#
'data'
|
string |
SCHEME_FILE
Dateien im lokalen Dateisystem |
#
'file'
|
string |
SCHEME_FTP
File Transfer Protocoll |
#
'ftp'
|
string |
SCHEME_HTTP
Hypertext Transfer Protocol |
#
'http'
|
string |
SCHEME_HTTPS
Hypertext Transfer Protocol (verschlüsselt) |
#
'https'
|
string |
SCHEME_LDAP
Lightweight Directory Access Protocol |
#
'ldap'
|
string |
SCHEME_MAILTO
E-Mail-Adresse |
#
'mailto'
|
string |
SCHEME_SIP
SIP-gestützter Sitzungsaufbau, z. B. für IP-Telefonie |
#
'sip'
|
string |
SCHEME_TELEPHONE
Telefonnummer |
#
'tel'
|
string |
SCHEME_URN
Uniform Resource Names (URNs) |
#
'urn'
|
string |
SCHEME_WS
Websocket |
#
'ws/wss'
|
string |
SCHEME_XMPP
Protokoll für Jabber |
#
'xmpp'
|
string |
SCHEME_UNIX
Protokoll für Jabber |
#
'unix'
|
APIVERSION,
IDENTIFICATION,
SERIALVERSION,
VERSION
|
protected static
array
|
$unsafeCharacter
Unsichere Zeichen |
#
[
'{', '}', '|', '\\', '^', '~', '[', ']', '`', '<', '>', '#', ' ', '"', ''
]
|
protected
string
|
$scheme
Schema |
#
null
|
protected
string
|
$user
Benutzername |
#
null
|
protected
boolean
|
$local
Lokale oder externe Resource |
#
null
|
protected
string
|
$password
Passwort |
#
null
|
protected
string
|
$host
Host |
#
null
|
protected
integer
|
$port
Port |
#
null
|
protected
string
|
$path
Pfad |
#
null
|
protected
Alvine\Types\Collection<\Alvine\Types\KeyValue>
|
$query
Query |
#
null
|
protected
string
|
$fragment
Fragmente |
#
null
|
$hash,
$properties
|