UUID
in package
UUID
Implementierung des Universally_Unique_Identifier (UUID) Standards. Der Aufbei einer UUID entspricht dabei dem folgendem Schema:
UUID = time-low "-" time-mid "-" time-high-and-version "-" clock-seq-and-reserved clock-seq-low "-" node
Eine Beispiel UUID in URI-Notation sieht folgendermaßen aus urn:uuid:f81d4fae-7dec-11d0-a765-00a0c91e6bf6
$uuid = Alvine\Util\UUID::generateFromName(Alvine\Util\UUID::NSDNS, 'www.example.org');
echo $uuid; // Ausgabe ist '74738ff5-5367-5958-9aee-98fffdcd1876';
Tags
Table of Contents
Constants
- DCEBASED = 2
- DCE Security version (nicht implementiert)
- NAMEMD5BASED = 3
- namensbasiert, MD5-gehasht
- NAMESHA1BASED = 5
- namensbasiert, SHA1-gehasht
- NSDNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8'
- Namespace für DNS Hostname Vordefinierte Namespaces, siehe Appendix C of RFC 4122
- NSOID = '6ba7b812-9dad-11d1-80b4-00c04fd430c8'
- Namespace für ISO Object Identifier Vordefinierte Namespaces, siehe Appendix C of RFC 4122
- NSURL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8'
- Namespace für eine gültige URL Vordefinierte Namespaces, siehe Appendix C of RFC 4122
- NSX500 = '6ba7b814-9dad-11d1-80b4-00c04fd430c8'
- Namespace für X.500 Objekte Vordefinierte Namespaces, siehe Appendix C of RFC 4122
- RANDOMBASED = 4
- zufällig oder pseudozufällige UUID
- TIMEBASED = 1
- ursprüngliche, zeitstempelbasierte UUID
Properties
- $clock_seq_hi : int
- $clock_seq_low : int
- $node : string
- $time_hi : int
- $time_low : int
- $time_mid : int
- $version : int
Methods
- __toString() : string
- Diese Funktion wird beim Cast eines UUID-Objekts in einen String aufgerufen.
- generateFromName() : UUID
- Erstellt eine UUID aus einem Namespace und einen Namen. Eine über einen Namen erstellt UUID muss immer wieder zum selben Ergebnis führen. Eine UUID im Namespace A aus dem Namen B und eine UUID C im Namespace D können identisch sein.
- generateFromRandom() : UUID
- Erstellt eine UUID nach Typ 4 aus zufälligen Zahlen. Obwohl die Eindeutigkeit für so generierte UUID nicht garantiert ist, ist die Gesamtzahl der eindeutigen Schlüssel mit 3,4028*1038 so groß, dass die Wahrscheinlichkeit der Erzeugung zwei gleicher UUIDs gegen null geht.
- generateFromString() : UUID
- Liegt die UUID im String-Format (74738ff5-5367-5958-9aee-98fffdcd1876) vor, so kann über diese Funktion ein UUID-Objekt aus dem String erstellt werden. Sollte es sich bei dem String nicht um eine gültige UUID handeln, so wird eine MalformedUUIDException geworfen.
- generateFromTime() : UUID
- Erstellt ein neues UUID Objekt nach Version 1 der Spezifikation, bestehend aus einem Zeitstempel und der Node-ID (entweder eine gültige MAC-Adresse, oder ein Zufallswert). Anhand einer solchen UUID lassen sich Rückschlüsse auf den Zeitpunkt der Erstellung und auf den Rechner ziehen.
- isValid() : boolean
- Funktion, die das Format eines Strings überprüft und bei einem gültigen UUID-String (z.B. 74738ff5-5367-5958-9aee-98fffdcd1876) true, ansonsten falls zurückgibt.
- __construct() : mixed
- UUID erstellen
- normalizeString() : string
- Normilisert einen String und füllt Ihn auf die gewünschte Länge it Nullen auf.
Constants
DCEBASED
DCE Security version (nicht implementiert)
public
mixed
DCEBASED
= 2
NAMEMD5BASED
namensbasiert, MD5-gehasht
public
mixed
NAMEMD5BASED
= 3
NAMESHA1BASED
namensbasiert, SHA1-gehasht
public
mixed
NAMESHA1BASED
= 5
NSDNS
Namespace für DNS Hostname Vordefinierte Namespaces, siehe Appendix C of RFC 4122
public
mixed
NSDNS
= '6ba7b810-9dad-11d1-80b4-00c04fd430c8'
Tags
NSOID
Namespace für ISO Object Identifier Vordefinierte Namespaces, siehe Appendix C of RFC 4122
public
mixed
NSOID
= '6ba7b812-9dad-11d1-80b4-00c04fd430c8'
Tags
NSURL
Namespace für eine gültige URL Vordefinierte Namespaces, siehe Appendix C of RFC 4122
public
mixed
NSURL
= '6ba7b811-9dad-11d1-80b4-00c04fd430c8'
Tags
NSX500
Namespace für X.500 Objekte Vordefinierte Namespaces, siehe Appendix C of RFC 4122
public
mixed
NSX500
= '6ba7b814-9dad-11d1-80b4-00c04fd430c8'
Tags
RANDOMBASED
zufällig oder pseudozufällige UUID
public
mixed
RANDOMBASED
= 4
TIMEBASED
ursprüngliche, zeitstempelbasierte UUID
public
mixed
TIMEBASED
= 1
Properties
$clock_seq_hi
private
int
$clock_seq_hi
= 0
8-bit der UUID-Struktur
$clock_seq_low
private
int
$clock_seq_low
= 0
8-bit der UUID-Struktur
$node
private
string
$node
= ''
48-bit, als String gespeichert
$time_hi
private
int
$time_hi
= 0
16-bit der UUID-Struktur
$time_low
private
int
$time_low
= 0
32-bit der UUID-Struktur
$time_mid
private
int
$time_mid
= 0
16-bit der UUID-Struktur
$version
private
int
$version
= null
Version der UUID (1-5)
Methods
__toString()
Diese Funktion wird beim Cast eines UUID-Objekts in einen String aufgerufen.
public
__toString() : string
$uuid = UUID::::generateFromRandom();
$string = (string)$uuid; // $string ist nun eine Zeichenkette wie 74738ff5-5367-5958-9aee-98fffdcd1876
Return values
string —UUID als String
generateFromName()
Erstellt eine UUID aus einem Namespace und einen Namen. Eine über einen Namen erstellt UUID muss immer wieder zum selben Ergebnis führen. Eine UUID im Namespace A aus dem Namen B und eine UUID C im Namespace D können identisch sein.
public
static generateFromName(string $namespace, string $name[, int $hashAlgorithm = self::NAMESHA1BASED ]) : UUID
Daher kann man von einer UUID nicht auf den Namen und den Namespace schliessen.
Parameters
- $namespace : string
-
String-UUID des Namespaces
- $name : string
-
Name der UUID (z.B. ein Domainname)
- $hashAlgorithm : int = self::NAMESHA1BASED
-
Version des Hash (SHA-1 oder MD5)
Return values
UUID —Neues Objekt
generateFromRandom()
Erstellt eine UUID nach Typ 4 aus zufälligen Zahlen. Obwohl die Eindeutigkeit für so generierte UUID nicht garantiert ist, ist die Gesamtzahl der eindeutigen Schlüssel mit 3,4028*1038 so groß, dass die Wahrscheinlichkeit der Erzeugung zwei gleicher UUIDs gegen null geht.
public
static generateFromRandom() : UUID
Aus diesme Grund können UUID zur Kennzeichnung ohne zentrale Kontrollinstanz erstellt und verwendet werden.
Return values
UUID —Neues Objekt
generateFromString()
Liegt die UUID im String-Format (74738ff5-5367-5958-9aee-98fffdcd1876) vor, so kann über diese Funktion ein UUID-Objekt aus dem String erstellt werden. Sollte es sich bei dem String nicht um eine gültige UUID handeln, so wird eine MalformedUUIDException geworfen.
public
static generateFromString(string $uuid) : UUID
Parameters
- $uuid : string
-
UUID im Stringformat 74738ff5-5367-5958-9aee-98fffdcd1876
Tags
Return values
UUID —Neues Objekt
generateFromTime()
Erstellt ein neues UUID Objekt nach Version 1 der Spezifikation, bestehend aus einem Zeitstempel und der Node-ID (entweder eine gültige MAC-Adresse, oder ein Zufallswert). Anhand einer solchen UUID lassen sich Rückschlüsse auf den Zeitpunkt der Erstellung und auf den Rechner ziehen.
public
static generateFromTime([string $node = null ]) : UUID
Parameters
- $node : string = null
-
MAC-Adresse oder Zufallswert in HEX-Darstellung ohne Sonderzeichen
Return values
UUID —Neues Objekt
isValid()
Funktion, die das Format eines Strings überprüft und bei einem gültigen UUID-String (z.B. 74738ff5-5367-5958-9aee-98fffdcd1876) true, ansonsten falls zurückgibt.
public
static isValid(string $uuid) : boolean
Parameters
- $uuid : string
-
Zu prüfender String
Return values
boolean —true im Falle eines gültigen Strings
__construct()
UUID erstellen
protected
__construct(int $version, int $timeLow, int $timeMid, int $timeHi, int $clockSeqHi, int $clockSeqLow, string $node) : mixed
Der Konstruktor erstellt ein neues UUID Objekt. Er kann allerdings nicht selber, sondern nur von einer Factory-Methode aufgerufen werden. Die interne Struktur ist wie inder Spezifikation definiert durch die Version 1 vorgegeben. Die anderen Versionen verwenden ebenfalls diese Struktur, jedoch ohne Wert auf den Namen zu legen.
Parameters
- $version : int
-
Version der UUID (1-5, 2 ist nicht implementiert)
- $timeLow : int
-
32-bit der UUID
- $timeMid : int
-
16-bit der UUID
- $timeHi : int
-
16-bit der UUID
- $clockSeqHi : int
-
8-bit der UUID
- $clockSeqLow : int
-
8-bit der UUID
- $node : string
-
Hex-Wert der Node
normalizeString()
Normilisert einen String und füllt Ihn auf die gewünschte Länge it Nullen auf.
private
static normalizeString(string $value, int $hexDigit) : string
Parameters
- $value : string
-
Zu überprüfender String
- $hexDigit : int
-
Anzahl der Zeichen
Return values
string —Normiliserter String