UUID
class UUID
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';
Constants
TIMEBASED |
ursprüngliche, zeitstempelbasierte UUID |
DCEBASED |
DCE Security version (nicht implementiert) |
NAMEMD5BASED |
namensbasiert, MD5-gehasht |
RANDOMBASED |
zufällig oder pseudozufällige UUID |
NAMESHA1BASED |
namensbasiert, SHA1-gehasht |
NSDNS |
Namespace für DNS Hostname Vordefinierte Namespaces, siehe Appendix C of RFC 4122 |
NSURL |
Namespace für eine gültige URL Vordefinierte Namespaces, siehe Appendix C of RFC 4122 |
NSOID |
Namespace für ISO Object Identifier Vordefinierte Namespaces, siehe Appendix C of RFC 4122 |
NSX500 |
Namespace für X.500 Objekte Vordefinierte Namespaces, siehe Appendix C of RFC 4122 |
Methods
UUID erstellen
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.
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.
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.
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.
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.
Diese Funktion wird beim Cast eines UUID-Objekts in einen String aufgerufen.
Details
at line 170
protected
__construct(int $version, int $timeLow, int $timeMid, int $timeHi, int $clockSeqHi, int $clockSeqLow, string $node)
UUID erstellen
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.
at line 222
static UUID
generateFromTime(string|null $node = null)
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.
at line 256
static UUID
generateFromName(string $namespace, string $name, int $hashAlgorithm = self::NAMESHA1BASED)
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.
Daher kann man von einer UUID nicht auf den Namen und den Namespace schliessen.
at line 297
static UUID
generateFromString(string $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.
at line 326
static UUID
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.
Aus diesme Grund können UUID zur Kennzeichnung ohne zentrale Kontrollinstanz erstellt und verwendet werden.
at line 347
static bool
isValid(string $uuid)
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.
at line 365
string
__toString()
Diese Funktion wird beim Cast eines UUID-Objekts in einen String aufgerufen.
$uuid = UUID::::generateFromRandom();
$string = (string)$uuid; // $string ist nun eine Zeichenkette wie 74738ff5-5367-5958-9aee-98fffdcd1876