original_string: public static function uuid()
      {
          $random = function_exists('random_int') ? 'random_int' : 'mt_rand';
  
          return sprintf(
              '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
              // 32 bits for "time_low"
              $random(0, 65535),
              $random(0, 65535),
              // 16 bits for "time_mid"
              $random(0, 65535),
              // 12 bits before the 0100 of (version) 4 for "time_hi_and_version"
              $random(0, 4095) | 0x4000,
              // 16 bits, 8 bits for "clk_seq_hi_res",
              // 8 bits for "clk_seq_low",
              // two most significant bits holds zero and one for variant DCE1.1
              $random(0, 0x3fff) | 0x8000,
              // 48 bits for "node"
              $random(0, 65535),
              $random(0, 65535),
              $random(0, 65535)
          );
      }
code: public static function uuid()
      {
          $random = function_exists('random_int') ? 'random_int' : 'mt_rand';
  
          return sprintf(
              '%04x%04x-%04x-%04x-%04x-%04x%04x%04x',
              // 32 bits for "time_low"
              $random(0, 65535),
              $random(0, 65535),
              // 16 bits for "time_mid"
              $random(0, 65535),
              // 12 bits before the 0100 of (version) 4 for "time_hi_and_version"
              $random(0, 4095) | 0x4000,
              // 16 bits, 8 bits for "clk_seq_hi_res",
              // 8 bits for "clk_seq_low",
              // two most significant bits holds zero and one for variant DCE1.1
              $random(0, 0x3fff) | 0x8000,
              // 48 bits for "node"
              $random(0, 65535),
              $random(0, 65535),
              $random(0, 65535)
          );
      }
code_tokens: public static function uuid ( ) { $ random = function_exists ( 'random_int' ) ? 'random_int' : 'mt_rand' ; return sprintf ( '%04x%04x-%04x-%04x-%04x-%04x%04x%04x' , // 32 bits for "time_low" $ random ( 0 , 65535 ) , $ random ( 0 , 65535 ) , // 16 bits for "time_mid" $ random ( 0 , 65535 ) , // 12 bits before the 0100 of (version) 4 for "time_hi_and_version" $ random ( 0 , 4095 ) | 0x4000 , // 16 bits, 8 bits for "clk_seq_hi_res", // 8 bits for "clk_seq_low", // two most significant bits holds zero and one for variant DCE1.1 $ random ( 0 , 0x3fff ) | 0x8000 , // 48 bits for "node" $ random ( 0 , 65535 ) , $ random ( 0 , 65535 ) , $ random ( 0 , 65535 ) ) ; }
docstring: Generate a random UUID version 4
  
  Warning: This method should not be used as a random seed for any cryptographic operations.
  Instead you should use the openssl or mcrypt extensions.
  
  It should also not be used to create identifiers that have security implications, such as
  'unguessable' URL identifiers. Instead you should use `Security::randomBytes()` for that.
  
  @see https://www.ietf.org/rfc/rfc4122.txt
  @return string RFC 4122 UUID
  @copyright Matt Farina MIT License https://github.com/lootils/uuid/blob/master/LICENSE
docstring_tokens: Generate a random UUID version 4