Merge "Tweak fullscreen styles for API sandbox"
[lhc/web/wiklou.git] / includes / utils / UIDGenerator.php
index 4881e68..95b4463 100644 (file)
@@ -21,6 +21,7 @@
  * @author Aaron Schulz
  */
 use Wikimedia\Assert\Assert;
+use MediaWiki\MediaWikiServices;
 
 /**
  * Class for getting statistically unique IDs
@@ -40,7 +41,7 @@ class UIDGenerator {
        protected $lockFileUUID; // string; local file path
 
        /** @var array */
-       protected $fileHandles = array(); // cache file handles
+       protected $fileHandles = []; // cache file handles
 
        const QUICK_RAND = 1; // get randomness from fast and insecure sources
        const QUICK_VOLATILE = 2; // use an APC like in-memory counter if available
@@ -62,7 +63,7 @@ class UIDGenerator {
                                $nodeId = isset( $info[0] ) ? str_replace( '-', '', $info[0] ) : '';
                        } elseif ( is_executable( '/sbin/ifconfig' ) ) { // Linux/BSD/Solaris/OS X
                                // See http://linux.die.net/man/8/ifconfig
-                               $m = array();
+                               $m = [];
                                preg_match( '/\s([0-9a-f]{2}(:[0-9a-f]{2}){5})\s/',
                                        wfShellExec( '/sbin/ifconfig -a' ), $m );
                                $nodeId = isset( $m[1] ) ? str_replace( ':', '', $m[1] ) : '';
@@ -135,7 +136,7 @@ class UIDGenerator {
                        $time = $info[0];
                        $counter = $info[1];
                }
-               // Take the 46 MSBs of "milliseconds since epoch"
+               // Take the 46 LSBs of "milliseconds since epoch"
                $id_bin = $this->millisecondsSinceEpochBinary( $time );
                // Add a 10 bit counter resulting in 56 bits total
                $id_bin .= str_pad( decbin( $counter ), 10, '0', STR_PAD_LEFT );
@@ -191,7 +192,7 @@ class UIDGenerator {
                        $counter = $info[1];
                        $clkSeq = $info[2];
                }
-               // Take the 46 bits of "milliseconds since epoch"
+               // Take the 46 LSBs of "milliseconds since epoch"
                $id_bin = $this->millisecondsSinceEpochBinary( $time );
                // Add a 20 bit counter resulting in 66 bits total
                $id_bin .= str_pad( decbin( $counter ), 20, '0', STR_PAD_LEFT );
@@ -357,7 +358,7 @@ class UIDGenerator {
         */
        protected function getSequentialPerNodeIDs( $bucket, $bits, $count, $flags ) {
                if ( $count <= 0 ) {
-                       return array(); // nothing to do
+                       return []; // nothing to do
                } elseif ( $bits < 16 || $bits > 48 ) {
                        throw new RuntimeException( "Requested bit size ($bits) is out of range." );
                }
@@ -368,7 +369,7 @@ class UIDGenerator {
                // Counter values would not survive accross script instances in CLI mode.
                $cache = null;
                if ( ( $flags & self::QUICK_VOLATILE ) && PHP_SAPI !== 'cli' ) {
-                       $cache = ObjectCache::getLocalServerInstance();
+                       $cache = MediaWikiServices::getInstance()->getLocalServerObjectCache();
                }
                if ( $cache ) {
                        $counter = $cache->incrWithInit( $bucket, $cache::TTL_INDEFINITE, $count, $count );
@@ -406,7 +407,7 @@ class UIDGenerator {
                        flock( $handle, LOCK_UN );
                }
 
-               $ids = array();
+               $ids = [];
                $divisor = pow( 2, $bits );
                $currentId = floor( $counter - $count ); // pre-increment counter value
                for ( $i = 0; $i < $count; ++$i ) {
@@ -449,7 +450,7 @@ class UIDGenerator {
                $clockChanged = false; // clock set back significantly?
                if ( count( $data ) == 5 ) { // last UID info already initialized
                        $clkSeq = (int)$data[0] % $clockSeqSize;
-                       $prevTime = array( (int)$data[1], (int)$data[2] );
+                       $prevTime = [ (int)$data[1], (int)$data[2] ];
                        $offset = (int)$data[4] % $counterSize; // random counter offset
                        $counter = 0; // counter for UIDs with the same timestamp
                        // Delay until the clock reaches the time of the last ID.
@@ -497,13 +498,13 @@ class UIDGenerator {
                // Release the UID lock file
                flock( $handle, LOCK_UN );
 
-               return array(
+               return [
                        'time'          => $time,
                        'counter'       => $counter,
                        'clkSeq'        => $clkSeq,
                        'offset'        => $offset,
                        'offsetCounter' => $counter + $offset
-               );
+               ];
        }
 
        /**
@@ -526,7 +527,7 @@ class UIDGenerator {
 
        /**
         * @param array $time Result of UIDGenerator::millitime()
-        * @return string 46 MSBs of "milliseconds since epoch" in binary (rolls over in 4201)
+        * @return string 46 LSBs of "milliseconds since epoch" in binary (rolls over in 4201)
         * @throws RuntimeException
         */
        protected function millisecondsSinceEpochBinary( array $time ) {
@@ -576,7 +577,7 @@ class UIDGenerator {
        protected static function millitime() {
                list( $msec, $sec ) = explode( ' ', microtime() );
 
-               return array( (int)$sec, (int)( $msec * 1000 ) );
+               return [ (int)$sec, (int)( $msec * 1000 ) ];
        }
 
        /**