IRI
extends URI
in package
Internationalized Resource Identifiers (IRIs)
Diese Klasse steht für die Verwendung von IRI zur Verfügung. Die aktuelleimplementierung ist noch eine 1:1 Ableitung der URI-Klasse. In einer späteren Version wird der Standard RFC 3987 abgebildet.
Tags
Table of Contents
Constants
- APIVERSION = 1
- Version der API-Version der Klasse.
- IDENTIFICATION = 'Alvine'
- Identifizierung der Alvine API
- SCHEME_DATA = 'data'
- Data-URL: direkt eingebettete Daten
- SCHEME_FACETIME = 'facetime'
- Protokoll für Facetime
- SCHEME_FILE = 'file'
- Dateien im lokalen Dateisystem
- SCHEME_FTP = 'ftp'
- File Transfer Protocoll
- SCHEME_HTTP = 'http'
- Hypertext Transfer Protocol
- SCHEME_HTTPS = 'https'
- Hypertext Transfer Protocol (verschlüsselt)
- SCHEME_LDAP = 'ldap'
- Lightweight Directory Access Protocol
- SCHEME_MAILTO = 'mailto'
- E-Mail-Adresse
- SCHEME_SIP = 'sip'
- SIP-gestützter Sitzungsaufbau, z. B. für IP-Telefonie
- SCHEME_TELEPHONE = 'tel'
- Telefonnummer
- SCHEME_UNIX = 'unix'
- Protokoll für Jabber
- SCHEME_URN = 'urn'
- Uniform Resource Names (URNs)
- SCHEME_WS = 'ws/wss'
- Websocket
- SCHEME_XMPP = 'xmpp'
- Protokoll für Jabber
- SERIALVERSION = 1
- Version der Klasse (wird für die Serialisierung verwendet. Ändert sich der interne Aufbau der Klasse, so muss dieser Wert nach oben gesetzt werden. Die Serialisierung muss diesen Wert abfragen und bei Bedarf einen Wrapper für das Arbeiten mit veralteten Objekten implmenetieren.
- VERSION = 2
- Generelle Alvine-Version
Properties
- $fragment : string
- $hasAssociatedProperties : boolean
- $hasAuthority : bool
- $hash : string
- Eindeutige ID
- $hasVolatileProperties : boolean
- $host : string
- $local : boolean
- $opaque : bool
- $password : string
- $path : string
- $port : integer
- $properties : array
- $query : Collection<string|int, KeyValue>
- $scheme : string
- $unsafeCharacter : array
- $user : string
Methods
- __call() : mixed
- Ein Closures das dem Objekt übergeben wurde, kann entweder als Property oder als Funktion aufgerufen werden.
- __clone() : mixed
- Interne Hook für das Clonen des Objektes. Wenn das zu klonende Objekt bereits eine eindeutige ID hat, dann wird auch für das neue Objekt eine eindeutige ID erstellt.
- __construct() : mixed
- 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.
- __get() : mixed
- Diese Methode wird inplizit aufgerufen wenn eine nicht definierte Eigenschaft abgefragt wird. Ist die Eigenschaft eine Anonyme-Funktion (Closure), so wird diese Funktion aufgerufen und die Klasse als Parameter übergeben.
- __isset() : boolean
- Wird aufgerufen, wenn isset() auf ein internes Property angewendet wird.
- __serialize() : array<string|int, mixed>
- Serialization of the object and data. In the serialized object also stores meta-information for matching.
- __set() : void
- Jede von der Alvine-Klasse abgeleitete Klasse besitzt die Fähigkeit beliebige Werte und Lambda-Funktionen an das Objekt zu hängen.
- __toString() : string
- Standardumwandlung des Inhalts der Klasse in eine Zeichenkette
- __unserialize() : void
- __unset() : mixed
- Zurücksetzen von Werten
- appendQueryValue() : URI
- Anders als \Alvine\Net\Resource\URI::setQueryValue() fügt diese Methode Werte zu der Query-Liste hinzu.
- equals() : boolean
- Diese Funktion vergleicht zwei Objekte. Dazu wird von beiden der Wert, der von `Alvine::getID()` zurückgeliefert wird ermittelt und das Ergebnis verglichen. Vererbte Klassen können diese Methode überschreiben.
- getClass() : string
- Name der Klasse
- getClone() : Alvine
- Diese Methode gibt ein geklontes Objekt von sich selber zurück.
- getClosure() : Closure
- Closure über den definierten Namen holen. Ist keine Eigenschaft mit dem Namen definiert, so wird eine BadPropertyException geworfen. Gibt es eine Eigenchaft mit dem Namen, ist diese aber kein Closure, so wird eine NotFoundException geworfen.
- getFragment() : string|null
- Gibt das Fragment oder null zurück
- getHashCode() : string
- Die Methode Alvine::getID() verwenden!
- getHost() : string
- Gibt den Host zurück.
- getID() : string
- Diese Methode gibt eine eindeutige ID des Objektes zurück. Bei der ID handelt es sich um eine Zeichenkette in der Form einer UUID.
- getInstanceFromDirectory() : URI
- Spezifische URI aus Directory
- getInstanceFromFile() : URI
- Spezifische URI aus Datei
- getPassword() : string|null
- Gibt das Passwort oder null zurück.
- getPath() : string|null
- Gibt den Pfad oder null zurück
- getPort() : string
- Gibt den Port zurück.
- getQuery() : string|null
- Gibt den Abfrageteil oder null zurück
- getQueryCollection() : Collection<string|int, KeyValue>
- Clone der internen Collection mit den Schlüssel/Wert Objekten
- getQueryMap() : SimpleMap
- Gibt den Abfrageteil als Map zurück Das Ergebnis ist ein Clone der Map.
- getScheme() : string|null
- Gibt das Schema zurück.
- getShortID() : string
- Diese Methode entfernt alle Minuszeichen aus der UUID des Hash. Wird eine Länge definiert, so wird nach dem entfernen der Minuszeichen die ersten $length Zeichen zurückgegeben.
- getUnsafeCharacter() : array
- Unsichere Zeichen
- getUser() : string|null
- Gibt den Benutzernamen zurück
- hasAssociatedProperties() : boolean
- Check if the object has associative properties
- hasAuthority() : bool
- Autorität beginnt mit einem Doppelschrägstrich
- hasVolatileProperties() : boolean
- Prüfen ob das Objekt volatile Eigenschaften besitzt
- isAbsolute() : boolean
- Gibt true bei absoluten URI zurück.
- isCallable() : bool
- Mit dieser Methode kann geprüft werden, ob eine Methode aufrufbar ist. Das gilt für echte und eingehängte DI-Methoden (Lambda).
- isInstanceOf() : boolean
- Prüft ob das übergebene Objekt eine Instanz dieses Objektes ist. Allerdings ist darauf zu achten, das vorher definiert wurde, das das neue Objekt von Alvine abgeleitet wurde.
- isLocal() : boolean
- Diese Methode gibt zurück, ob die referenzierte Resource lokal oder extern ist. Eine wichtige Ausnahme gibt es mit dem Schema file. Hier wird angenommen, das es extern ist, da es zwei Striche hat.
- isOpaque() : boolean
- Nicht hierarchische URI
- isRelative() : boolean
- Gibt true bei relativen URI zurück
- propertyExists() : boolean
- Prüfen ob eine Eigenschaft als dynamische Eigenschaft verfügbar ist, die über $obj->property abgefragt werden kann.
- resetQuery() : URI
- Den Queryteil einer URI zurücksetzen
- setFragment() : URI
- Setzt das Fragment (den reletiven Pfad innerhalb einer Ressource. Dieser wird mit einem # abgegrenzt.
- setPassword() : URI
- Diese Methode setzt das Passwort, das in der URI verwendet werden soll.
- setPath() : URI
- Setzt den Pfad
- setQuery() : URI
- Setzt den Abfrageteil von Werten die URLCodiert sind
- setQuerySeparator() : URI
- Query-Trennzeichen setzen
- setQueryValue() : URI
- Schlüssel/Wert-Paar in der URL (Query) setzen Sind mehrere identische Paare gesetzt, so werden die Werte bis auf einen entfernt
- setUser() : URI
- Diese Methode setzt den Benutzernamen, der in der URI verwendet werden soll.
- validate() : boolean
- Prüfen auf generelle Gültigkeit
- checkAndAdjustSerialisation() : array<string|int, mixed>
- Dealing with versions
- getSchemeFormat() : string
- Aufbau der Schema-Zeichenkette
- parse() : array|boolean
- Parse-Funktion für URI
- parseQuery() : Collection<string|int, KeyValue>
- Query-Parsen und in Map zerlegen
- validateParts() : mixed
- Interne Prüfung
Constants
APIVERSION
Version der API-Version der Klasse.
public
mixed
APIVERSION
= 1
IDENTIFICATION
Identifizierung der Alvine API
public
mixed
IDENTIFICATION
= 'Alvine'
SCHEME_DATA
Data-URL: direkt eingebettete Daten
public
mixed
SCHEME_DATA
= 'data'
SCHEME_FACETIME
Protokoll für Facetime
public
mixed
SCHEME_FACETIME
= 'facetime'
Tags
SCHEME_FILE
Dateien im lokalen Dateisystem
public
mixed
SCHEME_FILE
= 'file'
SCHEME_FTP
File Transfer Protocoll
public
mixed
SCHEME_FTP
= 'ftp'
SCHEME_HTTP
Hypertext Transfer Protocol
public
mixed
SCHEME_HTTP
= 'http'
SCHEME_HTTPS
Hypertext Transfer Protocol (verschlüsselt)
public
mixed
SCHEME_HTTPS
= 'https'
SCHEME_LDAP
Lightweight Directory Access Protocol
public
mixed
SCHEME_LDAP
= 'ldap'
SCHEME_MAILTO
E-Mail-Adresse
public
mixed
SCHEME_MAILTO
= 'mailto'
SCHEME_SIP
SIP-gestützter Sitzungsaufbau, z. B. für IP-Telefonie
public
mixed
SCHEME_SIP
= 'sip'
SCHEME_TELEPHONE
Telefonnummer
public
mixed
SCHEME_TELEPHONE
= 'tel'
SCHEME_UNIX
Protokoll für Jabber
public
mixed
SCHEME_UNIX
= 'unix'
SCHEME_URN
Uniform Resource Names (URNs)
public
mixed
SCHEME_URN
= 'urn'
SCHEME_WS
Websocket
public
mixed
SCHEME_WS
= 'ws/wss'
SCHEME_XMPP
Protokoll für Jabber
public
mixed
SCHEME_XMPP
= 'xmpp'
SERIALVERSION
Version der Klasse (wird für die Serialisierung verwendet. Ändert sich der interne Aufbau der Klasse, so muss dieser Wert nach oben gesetzt werden. Die Serialisierung muss diesen Wert abfragen und bei Bedarf einen Wrapper für das Arbeiten mit veralteten Objekten implmenetieren.
public
mixed
SERIALVERSION
= 1
https://php.watch/versions/8.1/serializable-deprecated
VERSION
Generelle Alvine-Version
public
mixed
VERSION
= 2
Properties
$fragment
protected
string
$fragment
= null
Fragmente
$hasAssociatedProperties
protected
boolean
$hasAssociatedProperties
= null
(nur initialisiert, wenn Serialisierung erfolgte)
$hasAuthority
protected
bool
$hasAuthority
= null
$hash
Eindeutige ID
protected
string
$hash
= null
Die ID wird erst über die Methode \Alvine\Core\Alvine::getID() bei Bedarf ermittelt, deshalb müssen auch abgeleitete Klassen nicht direkt auf den Wert zugreifen, sondern den Wert über getID() holen.
Hash-Wert des Objekts (UUID)
$hasVolatileProperties
protected
boolean
$hasVolatileProperties
= null
(nur initialisiert, wenn Serialisierung erfolgte)
$host
protected
string
$host
= null
Host
$local
protected
boolean
$local
= null
Lokale oder externe Resource
$opaque
protected
bool
$opaque
= null
$password
protected
string
$password
= null
Passwort
$path
protected
string
$path
= null
Pfad
$port
protected
integer
$port
= null
Port
$properties
protected
array
$properties
= []
Liste mit dynamischen Eigenschaften die über __get und __set bearbeitet werden können.
$query
protected
Collection<string|int, KeyValue>
$query
= null
Query
$scheme
protected
string
$scheme
= null
Schema
$unsafeCharacter
protected
static array
$unsafeCharacter
= ['{', '}', '|', '\\', '^', '~', '[', ']', '`', '<', '>', '#', ' ', '"', '']
Unsichere Zeichen
$user
protected
string
$user
= null
Benutzername
Methods
__call()
Ein Closures das dem Objekt übergeben wurde, kann entweder als Property oder als Funktion aufgerufen werden.
public
__call(string $name, array $arguments) : mixed
Achtung: Wird das Closure in einem Objekt definiert, so ist die Variable $this nicht das Objekt des Closures, sondern des, in dem das Closure definiert wurde.
// als erster Parameter wird immer das Objekt übergeben
$a->myfunction = function($obj, $b) { echo $b.'!'; };
// Aufruf als Eigenschaft ohne Parameter
$a->myfunction; // Ausgabe ist ein !
//
// Aufruf als Methode mit Parametern
$a->myfunction('OK'); // Ausgabe ist OK!
Parameters
- $name : string
-
Funktionsname
- $arguments : array
-
Argumente
Tags
Return values
mixed —Ergebnis des Callbacks
__clone()
Interne Hook für das Clonen des Objektes. Wenn das zu klonende Objekt bereits eine eindeutige ID hat, dann wird auch für das neue Objekt eine eindeutige ID erstellt.
public
__clone() : mixed
Alvine-Objekte werden rekursive geclont, so das ein vollständiger Clone vorhanden ist.
__construct()
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.
public
__construct([string $uri = null ]) : mixed
Die URL muss urlcodiert sein, das heisst die Werte im Query müssen Sonderzeichen codiert vorliegen.
Parameters
- $uri : string = null
-
URI in String-Form
Tags
__get()
Diese Methode wird inplizit aufgerufen wenn eine nicht definierte Eigenschaft abgefragt wird. Ist die Eigenschaft eine Anonyme-Funktion (Closure), so wird diese Funktion aufgerufen und die Klasse als Parameter übergeben.
public
__get(string $name) : mixed
Vor der Abfrage sollte, damit keine Exception geworfen wird, die Existenz der Eigenschaft geprüft werden.
if($obj->propertyExists('myproperty')) {
$value = $obj->myproperty;
}
Parameters
- $name : string
-
Name der Eigenschaft
Tags
Return values
mixed —Wert der Eigenschaft
__isset()
Wird aufgerufen, wenn isset() auf ein internes Property angewendet wird.
public
__isset(string $name) : boolean
Parameters
- $name : string
Return values
boolean__serialize()
Serialization of the object and data. In the serialized object also stores meta-information for matching.
public
__serialize() : array<string|int, mixed>
If a derived class is not to be serializable, then this * method must be overridden and throw an exception. this method must be overridden and throw an exception.
Properties starting with volatile or associated. are handled separately. Properties with prefix volatile are not serialized. For properties with the prefix associated, only the * ID of the object is serialized. ID of the object is serialized. If no object is stored in the property is stored in the property, a TypeException is thrown.
Tags
Return values
array<string|int, mixed>__set()
Jede von der Alvine-Klasse abgeleitete Klasse besitzt die Fähigkeit beliebige Werte und Lambda-Funktionen an das Objekt zu hängen.
public
__set(string $name, mixed $value) : void
Diese Methode wird indirekt aufgerufen, sobald ein Wert oder eine Funktion einem Objekt zugeordnet wird, die nicht definiert wurde.
class MyObject extends Alvine {
}
$obj = new MyObject();
$obj->myValue = 4;
Parameters
- $name : string
-
Name der Eigenschaft
- $value : mixed
-
Wert der Eigenschaft
Return values
void__toString()
Standardumwandlung des Inhalts der Klasse in eine Zeichenkette
public
__toString() : string
echo (string) new MyObect();
Return values
string —Daten des Objekts
__unserialize()
public
__unserialize(array<string|int, mixed> $serialized) : void
Parameters
- $serialized : array<string|int, mixed>
Tags
__unset()
Zurücksetzen von Werten
public
__unset(string $name) : mixed
Parameters
- $name : string
appendQueryValue()
Anders als \Alvine\Net\Resource\URI::setQueryValue() fügt diese Methode Werte zu der Query-Liste hinzu.
public
appendQueryValue(string $key, string $value) : URI
Ein mehrmahliger Aufruf hat zur Folge, dass mehrere Parameter angehängt werden.
Die Werte werden ohne urlcodierung in die Query-Map eingetragen.
Parameters
- $key : string
-
Schlüssel
- $value : string
-
Wert
Return values
URIequals()
Diese Funktion vergleicht zwei Objekte. Dazu wird von beiden der Wert, der von `Alvine::getID()` zurückgeliefert wird ermittelt und das Ergebnis verglichen. Vererbte Klassen können diese Methode überschreiben.
public
equals(Alvine $object) : boolean
class MyObject extends Alvine };
$objA = new MyObject();
$objB = new MyObject();
if($objA->equals($objB)) {
// ...
}
Parameters
- $object : Alvine
-
Objekt das überprüft werden soll
Return values
boolean —true wenn beide Objekte identisch sind.
getClass()
Name der Klasse
public
getClass() : string
class MyObject extends Alvine };
$obj = new MyObject();
echo $obj->getClass();
Tags
Return values
string —Klassenname
getClone()
Diese Methode gibt ein geklontes Objekt von sich selber zurück.
public
getClone([boolean $deepClone = false ]) : Alvine
Wenn eine abgeleitete Klasse diese Methode nicht unterstützt, so muss diese die Methode überschreiben und eine CloneNotSupportedException werfen. Die Standardmethode klont eine seichte Kopie der Eigenschaften. Das bedeutet das Objekte in den Eigenschaften nicht geclont werden. Sollen diese auch geclont werden muss true übergeben werden.
Wenn weitere Funktionen implementiert werden sollen, so muss __clone überschrieben werden
Parameters
- $deepClone : boolean = false
-
Clone aller enthaltenen Objekte
Tags
Return values
AlvinegetClosure()
Closure über den definierten Namen holen. Ist keine Eigenschaft mit dem Namen definiert, so wird eine BadPropertyException geworfen. Gibt es eine Eigenchaft mit dem Namen, ist diese aber kein Closure, so wird eine NotFoundException geworfen.
public
getClosure(string $name) : Closure
Parameters
- $name : string
-
Name des Closure
Tags
Return values
ClosuregetFragment()
Gibt das Fragment oder null zurück
public
getFragment() : string|null
Return values
string|null —Fragment oder null
getHashCode()
Die Methode Alvine::getID() verwenden!
public
getHashCode() : string
Tags
Return values
string —Hashwert des Objektes
getHost()
Gibt den Host zurück.
public
getHost() : string
Return values
string —Host
getID()
Diese Methode gibt eine eindeutige ID des Objektes zurück. Bei der ID handelt es sich um eine Zeichenkette in der Form einer UUID.
public
getID() : string
Objekte haben bei der Erstellung noch keine eindeutige ID, erst mit dem expliziten Aufruf der ID wird diese einmalig erstellt und im Objekt gepseichert.
Diese Methode wird implizit beim Serialisieren aufgerufen.
Die UUID ist dabei vom Type4 (Random)
Return values
string —UUID des Objektes
getInstanceFromDirectory()
Spezifische URI aus Directory
public
static getInstanceFromDirectory(Directory $directory) : URI
Parameters
- $directory : Directory
Return values
URIgetInstanceFromFile()
Spezifische URI aus Datei
public
static getInstanceFromFile(File $file) : URI
Parameters
- $file : File
Return values
URIgetPassword()
Gibt das Passwort oder null zurück.
public
getPassword() : string|null
Return values
string|null —Passwort oder null
getPath()
Gibt den Pfad oder null zurück
public
getPath() : string|null
Return values
string|null —Pfad oder null
getPort()
Gibt den Port zurück.
public
getPort() : string
Return values
string —Host
getQuery()
Gibt den Abfrageteil oder null zurück
public
getQuery() : string|null
Die Parameter werden mittels \rawurlencode codiert und stehen somit direkt für die Verwendung in der Serverkommunikation zur Verfügung.
Return values
string|null —Abfrageteil oder null
getQueryCollection()
Clone der internen Collection mit den Schlüssel/Wert Objekten
public
getQueryCollection() : Collection<string|int, KeyValue>
Die Werte in der Map sind nicht urlcodiert.
Return values
Collection<string|int, KeyValue>getQueryMap()
Gibt den Abfrageteil als Map zurück Das Ergebnis ist ein Clone der Map.
public
getQueryMap() : SimpleMap
WICHTIG Bei der Map können nur eindeutige Schlüssel zurückgegeben werden. Wird eine URL mit Mehrfachzuweisungen verwendet, so muss getQueryCollection verwendet werden.
Bei der URL www.example.com?a=1&a=2 ist undefiniert welcher Wert zurückgegeben wird. Das Verhalten kann sich auch jederzeit ändern.
Die Werte in der Map sind nicht urlcodiert.
Return values
SimpleMap —Abfrageteil
getScheme()
Gibt das Schema zurück.
public
getScheme() : string|null
Return values
string|null —Null bei relativen URI
getShortID()
Diese Methode entfernt alle Minuszeichen aus der UUID des Hash. Wird eine Länge definiert, so wird nach dem entfernen der Minuszeichen die ersten $length Zeichen zurückgegeben.
public
getShortID([int|null $length = null ]) : string
Diese Methode ist hilfreich um Platz zu sparen.
Je kürzer die ID ist, um so größer ist die Wahrscheinlichkeit einer Kollision mit anderen Hash vergleichbarer Objekte.
Parameters
- $length : int|null = null
Return values
stringgetUnsafeCharacter()
Unsichere Zeichen
public
static getUnsafeCharacter() : array
Array mit unsicheren Zeichen, die in einer URL Maskiert werden müssen.
Tags
Return values
array —Unsichere Zeichen
getUser()
Gibt den Benutzernamen zurück
public
getUser() : string|null
Return values
string|null —Benutzername oder null
hasAssociatedProperties()
Check if the object has associative properties
public
hasAssociatedProperties() : boolean
Tags
Return values
booleanhasAuthority()
Autorität beginnt mit einem Doppelschrägstrich
public
hasAuthority() : bool
Return values
boolhasVolatileProperties()
Prüfen ob das Objekt volatile Eigenschaften besitzt
public
hasVolatileProperties() : boolean
Tags
Return values
booleanisAbsolute()
Gibt true bei absoluten URI zurück.
public
isAbsolute() : boolean
Return values
boolean —Type
isCallable()
Mit dieser Methode kann geprüft werden, ob eine Methode aufrufbar ist. Das gilt für echte und eingehängte DI-Methoden (Lambda).
public
isCallable(string $name) : bool
if($obj->isCallable('myfunction')) {
$obj->myfunction();
}
Parameters
- $name : string
-
Name der Methode
Return values
bool —Ergebnis
isInstanceOf()
Prüft ob das übergebene Objekt eine Instanz dieses Objektes ist. Allerdings ist darauf zu achten, das vorher definiert wurde, das das neue Objekt von Alvine abgeleitet wurde.
public
isInstanceOf(object $object) : boolean
if($obj instanceof Alvine &&
$obj->isInstanceOf($object)) { };
Die Prüfung entspricht
$this instanceof $object
Parameters
- $object : object
Return values
booleanisLocal()
Diese Methode gibt zurück, ob die referenzierte Resource lokal oder extern ist. Eine wichtige Ausnahme gibt es mit dem Schema file. Hier wird angenommen, das es extern ist, da es zwei Striche hat.
public
isLocal() : boolean
Tags
Return values
boolean —true wenn die URI lokal ist, false bei externen
isOpaque()
Nicht hierarchische URI
public
isOpaque() : boolean
Der Aufbau einer URI unterscheidet sich je nach verwendeten Schema. So ist der Aufbau einer Telefon-URI mit Schema und Nummer anders, als der Aufbau einer http-, oder file-URI. Eine hierarchisch aufgebaute URI wie http kann aus mehreren Bestandteilen bestehen, deren Reihenfolge festgelegt ist. Die URL kann dann neben dem Schema, der Authorität und dem Pfad auch einen Query String enthalten. Die isOpaque Methode liefert false, wenn die URI hierarchisch aufgebaut und true im anderen Fall.
"A URI is opaque if, and only if, it is absolute and its scheme-specific part does not begin with a slash character ('/'). An opaque URI has a scheme, a scheme-specific part, and possibly a fragment; all other components are undefined."
Return values
boolean —true bei einer Opaque- und false bei einer Hierarchischen-URL
isRelative()
Gibt true bei relativen URI zurück
public
isRelative() : boolean
Return values
boolean —Typ
propertyExists()
Prüfen ob eine Eigenschaft als dynamische Eigenschaft verfügbar ist, die über $obj->property abgefragt werden kann.
public
propertyExists(string $name) : boolean
if($obj->propertyExists('myproperty')) {
$value = $obj->myproperty;
}
Parameters
- $name : string
-
Name der Eigenschaft
Return values
booleanresetQuery()
Den Queryteil einer URI zurücksetzen
public
resetQuery() : URI
Return values
URIsetFragment()
Setzt das Fragment (den reletiven Pfad innerhalb einer Ressource. Dieser wird mit einem # abgegrenzt.
public
setFragment(string $fragment) : URI
Parameters
- $fragment : string
-
Fragmentteil.
Return values
URIsetPassword()
Diese Methode setzt das Passwort, das in der URI verwendet werden soll.
public
setPassword(string $password) : URI
Aus Sicherheitsgründen, sollten jedoch keine Anmeldedaten über die URI gesendet werden.
Parameters
- $password : string
-
Passwort
Return values
URI —Dieses Objekt
setPath()
Setzt den Pfad
public
setPath([string $path = null ]) : URI
Parameters
- $path : string = null
-
Pfad
Tags
Return values
URI —Dieses Objekt
setQuery()
Setzt den Abfrageteil von Werten die URLCodiert sind
public
setQuery(null|string|SimpleMap $query) : URI
Wird null übergeben werden alle Queries gelöscht.
Wichtig: Das übergebene Query wird mittels URI::parseQuery() decodiert. Das heißt der übergebene Abfrageteil muss urlencoded sein. Das gilt auch für die Werte in der Map
Parameters
- $query : null|string|SimpleMap
-
Query
Tags
Return values
URIsetQuerySeparator()
Query-Trennzeichen setzen
public
setQuerySeparator(string $separator) : URI
In HTML-Webseiten muss statt einen & ein & notwendig.
Parameters
- $separator : string
Return values
URIsetQueryValue()
Schlüssel/Wert-Paar in der URL (Query) setzen Sind mehrere identische Paare gesetzt, so werden die Werte bis auf einen entfernt
public
setQueryValue(string $key, string $value) : URI
Die Werte werden ohne urlcodierung in die Query-Map eingetragen.
Parameters
- $key : string
-
Schlüssel
- $value : string
-
Wert
Return values
URIsetUser()
Diese Methode setzt den Benutzernamen, der in der URI verwendet werden soll.
public
setUser(string $user) : URI
Aus Sicherheitsgründen, sollten jedoch keine Anmeldedaten über die URI gesendet werden.
Parameters
- $user : string
-
Benutzername
Return values
URI —Dieses Objekt
validate()
Prüfen auf generelle Gültigkeit
public
static validate(string $uri) : boolean
Diese Methode überprüft die URI, anhand spezifischer Prüfungen. Diese Methode muss von abgeleiteten Klassen überschrieben werden und eigene Regeln definieren.
Parameters
- $uri : string
Return values
boolean —true, wenn die URI korrekt ist.
checkAndAdjustSerialisation()
Dealing with versions
protected
checkAndAdjustSerialisation(array $serialization) : array<string|int, mixed>
This method checks an object and ideally repairs older copies. If an old copy cannot be restored be restored, an exception is thrown.
This method must be overridden by the derived classes. be overridden. In the derived class, * the parent method should be called. the parent method should be called.
Parameters
- $serialization : array
-
Daten des serialisiertes Objekts
Tags
Return values
array<string|int, mixed>getSchemeFormat()
Aufbau der Schema-Zeichenkette
protected
getSchemeFormat() : string
Return values
string —Schema
parse()
Parse-Funktion für URI
protected
static parse(string $uri) : array|boolean
Da die Funktion \parse_url auf URL spezialisiert ist, ersetzt diese Methode diese PHP-Funktion, damit auch URI geparsed werden.
Parameters
- $uri : string
Return values
array|boolean —Array mit der URI oder false im Fehlerfall
parseQuery()
Query-Parsen und in Map zerlegen
protected
parseQuery(string $query) : Collection<string|int, KeyValue>
Die Queryparameter werden mit rawurldecode decodiert. Pluszeichen werden genauso wie %20 in leerzeichen geändert.
Parameters
- $query : string
Return values
Collection<string|int, KeyValue>validateParts()
Interne Prüfung
protected
validateParts() : mixed
Diese interne Methode wird vom Konstruktor aufgerufen und prüft verschiedene Regeln und wirft im Fehlerfall eine Exception. Abgeleitete Klassen können an dieser Stelle Ihre eigenen Regeln für gültige URI definieren.