original_string: public static function uuid($version = self::UUID_V4){
  
          switch($version){
              case self::UUID_V4:
                  $data = openssl_random_pseudo_bytes(16);
  
                  $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0010
                  $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
  
                  return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
  
              default:
                  throw new Exception("Invalid or unknown uuid version specified");
          }
      }
code: public static function uuid($version = self::UUID_V4){
  
          switch($version){
              case self::UUID_V4:
                  $data = openssl_random_pseudo_bytes(16);
  
                  $data[6] = chr(ord($data[6]) & 0x0f | 0x40); // set version to 0010
                  $data[8] = chr(ord($data[8]) & 0x3f | 0x80); // set bits 6-7 to 10
  
                  return vsprintf('%s%s-%s-%s-%s-%s%s%s', str_split(bin2hex($data), 4));
  
              default:
                  throw new Exception("Invalid or unknown uuid version specified");
          }
      }
code_tokens: public static function uuid ( $ version = self :: UUID_V4 ) { switch ( $ version ) { case self :: UUID_V4 : $ data = openssl_random_pseudo_bytes ( 16 ) ; $ data [ 6 ] = chr ( ord ( $ data [ 6 ] ) & 0x0f | 0x40 ) ; // set version to 0010 $ data [ 8 ] = chr ( ord ( $ data [ 8 ] ) & 0x3f | 0x80 ) ; // set bits 6-7 to 10 return vsprintf ( '%s%s-%s-%s-%s-%s%s%s' , str_split ( bin2hex ( $ data ) , 4 ) ) ; default : throw new Exception ( "Invalid or unknown uuid version specified" ) ; } }
docstring: Generate a uuid according to a specific UUID definition
  @param integer $version        format/version of UUID to generate
  @throws \Exception
  @return string
docstring_tokens: Generate a uuid according to a specific UUID definition