MediaWiki  master
UIDGenerator.php
Go to the documentation of this file.
1 <?php
24 
31 class UIDGenerator {
33  public const QUICK_RAND = 0; // b/c
35  public const QUICK_VOLATILE = GlobalIdGenerator::QUICK_VOLATILE;
36 
52  public static function newTimestampedUID88( $base = 10 ) {
53  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
54 
55  return $gen->newTimestampedUID88( $base );
56  }
57 
72  public static function newTimestampedUID128( $base = 10 ) {
73  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
74 
75  return $gen->newTimestampedUID128( $base );
76  }
77 
85  public static function newUUIDv1() {
86  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
87 
88  return $gen->newUUIDv1();
89  }
90 
98  public static function newRawUUIDv1() {
99  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
100 
101  return $gen->newRawUUIDv1();
102  }
103 
111  public static function getTimestampFromUUIDv1( string $uuid, int $format = TS_MW ) {
112  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
113 
114  return $gen->getTimestampFromUUIDv1( $uuid, $format );
115  }
116 
124  public static function newUUIDv4( $flags = 0 ) {
125  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
126 
127  return $gen->newUUIDv4();
128  }
129 
137  public static function newRawUUIDv4( $flags = 0 ) {
138  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
139 
140  return $gen->newRawUUIDv4();
141  }
142 
155  public static function newSequentialPerNodeID( $bucket, $bits = 48, $flags = 0 ) {
156  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
157 
158  return $gen->newSequentialPerNodeID( $bucket, $bits, $flags );
159  }
160 
172  public static function newSequentialPerNodeIDs( $bucket, $bits, $count, $flags = 0 ) {
173  $gen = MediaWikiServices::getInstance()->getGlobalIdGenerator();
174 
175  return $gen->newSequentialPerNodeIDs( $bucket, $bits, $count, $flags );
176  }
177 }
Service locator for MediaWiki core services.
Class for getting statistically unique IDs.
static newRawUUIDv1()
Return an RFC4122 compliant v1 UUID.
static newSequentialPerNodeID( $bucket, $bits=48, $flags=0)
Return an ID that is sequential only for this node and bucket.
static newSequentialPerNodeIDs( $bucket, $bits, $count, $flags=0)
Return IDs that are sequential only for this node and bucket.
static newRawUUIDv4( $flags=0)
Return an RFC4122 compliant v4 UUID.
static newUUIDv4( $flags=0)
Return an RFC4122 compliant v4 UUID.
static newUUIDv1()
Return an RFC4122 compliant v1 UUID.
static newTimestampedUID128( $base=10)
Get a statistically unique 128-bit unsigned integer ID string.
static getTimestampFromUUIDv1(string $uuid, int $format=TS_MW)
Get timestamp in a specified format from UUIDv1.
static newTimestampedUID88( $base=10)
Get a statistically unique 88-bit unsigned integer ID string.
Class for getting statistically unique IDs without a central coordinator.