UID组件

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 5.1,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

UID组件

UID组件提供了可用的实用程序惟一标识符(uid),例如uuid和ULIDs。

5.1

UID组件是在Symfony 5.1中引入的。ob娱乐下载

安装

1
Composer需要symfonyob娱乐下载/uid

请注意

如果在Symfony应用程序外部安装此组件,则必须要求ob娱乐下载供应商/ autoload.php文件,以启用Composer提供的类自动加载机制。读这篇文章欲知详情。

uuid

uuid通用唯一标识符)是软件业中最受欢迎的uid之一。uuid是128位数字,通常用五组十六进制字符表示:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx(的UUID版本Ndigit是UUID变体)。

生成uuid

类的命名构造函数Uuid类或任何特定的类来创建每种类型的UUID:

12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21 22
使用ob娱乐下载\组件\Uid\Uuid// UUID类型1使用您的设备的MAC地址和时间戳生成UUID。//这两个都是自动获得的,所以你不需要传递任何构造函数参数。uuid= Uuid::v1 ();// $uuid是Symfony\Component\ob娱乐下载Uid\UuidV1的实例// UUID类型4生成一个随机的UUID,所以你不需要传递任何构造函数参数。uuid= Uuid::v4 ();// $uuid是Symfony\Component\ob娱乐下载Uid\UuidV4的实例// UUID类型3和5生成一个散列给定名称空间和名称的UUID。第三类用途// MD5哈希,Type 5使用SHA-1。命名空间是另一个UUID(例如,Type 4 UUID)//并且名称是任意字符串(例如,产品名称;如果它是唯一的)。名称空间= Uuid::v4 ();的名字产品->getUniqueName ();uuid= Uuid::v3 (名称空间的名字);// $uuid是Symfony\Component\ob娱乐下载Uid\UuidV3的实例uuid= Uuid::v5 (名称空间的名字);// $uuid是Symfony\Component\ob娱乐下载Uid\UuidV5的实例// UUID类型6不是UUID标准的一部分它是可以按字典排序的//(像ULIDs),包含一个60位的时间戳和63位额外的唯一位。//在http://gh.peabody.io/uuidv6/中定义uuid= Uuid::v6 ();// $uuid是Symfony\Component\ob娱乐下载Uid\UuidV6的实例

如果您的UUID是由其他系统生成的,请使用fromString ()方法来创建一个对象,并使用Symfony uuid可用的实用程序:ob娱乐下载

1 2 3
//该值在其他地方生成(也可以是二进制格式)uuidValue“d9e7a184 - 5 - d5b - 11 - ea - a62a - 3499710062 - d0的uuid= Uuid::fromString (uuidValue);

转换uuid

使用这些方法将UUID对象转换为不同的基:

1 2 3 4 5 6
uuid= Uuid::fromString (“d9e7a184 - 5 - d5b - 11 - ea - a62a - 3499710062 - d0的);uuid->toBinary ();/ /字符串(16)“…”(二进制内容无法打印)uuid->toBase32 ();/ /字符串(26)“6 swygr8qav27nacahmk5rg0rpg”uuid->toBase58 ();/ /字符串(22)“TuetYWNHhmuSQ3xPoVLv9M”uuid->toRfc4122 ();/ /字符串(36)“d9e7a184 - 5 - d5b - 11 - ea - a62a - 3499710062 - d0”

使用uuid

属性创建的UUID对象Uuid类可以使用以下方法(这些方法等价于uuid_ * ()PHP扩展的方法):

12 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27
使用ob娱乐下载\组件\Uid\NilUuid使用ob娱乐下载\组件\Uid\Uuid//检查UUID是否为空(注意该类被调用//用NullUuid代替NullUuid来遵循UUID标准表示法)uuid= Uuid::v4 ();uuid运算符NilUuid;/ /错误//检查UUID的类型使用ob娱乐下载\组件\Uid\UuidV4uuid= Uuid::v4 ();uuid运算符UuidV4;/ /正确的//获取UUID时间(仅在某些UUID类型中可用)uuid= Uuid::v1 ();uuid->取得时间();//例如:float(1584111384.2613)//比较uuid并检查是否相等uuid1= Uuid::v1 ();uuid4= Uuid::v4 ();uuid1->= (uuid4);/ /错误//该方法返回:// * int(0)如果$uuid1和$uuid4相等// * int >如果$uuid1大于$uuid4则为0// * int < 0如果$uuid1小于$uuid4uuid1->比较(uuid4);// int(4)

ULIDs

ULIDs通用唯一的字典排序标识符)是128位的数字,通常以26个字符的字符串表示:TTTTTTTTTTRRRRRRRRRRRRRRRR(T表示时间戳,并且R表示随机位)。

当使用uuid不切实际时,ulid是uuid的替代方案。它们提供了与UUID的128位兼容性,它们是按字典顺序排序的,它们被编码为26个字符的字符串(而不是36个字符的UUID)。

生成ULIDs

实例化Ulid类来生成一个随机的ULID值:

1 2 3
使用ob娱乐下载\组件\Uid\UlidulidUlid ();//例如01AN4Z07BY79KA1307SR9X4MV3

如果您的ULID是由另一个系统生成的,请使用fromString ()方法来创建一个对象,并使用Symfony ULIDs可用的实用程序:ob娱乐下载

1 2 3
//该值在其他地方生成(也可以是二进制格式)ulidValue“01 e439tp9xjz9rpfh3t1pybcr8”ulid= Ulid::fromString (ulidValue);

转换ULIDs

使用这些方法将ULID对象转换为不同的基:

1 2 3 4 5 6
ulid= Ulid::fromString (“01 e439tp9xjz9rpfh3t1pybcr8”);ulid->toBinary ();/ /字符串(16)“…”(二进制内容无法打印)ulid->toBase32 ();/ /字符串(26)“01 e439tp9xjz9rpfh3t1pybcr8”ulid->toBase58 ();/ /字符串(22)“1 bkocmc5bnrvcuq2ti4eqm”ulid->toRfc4122 ();/ /字符串(36)“0171069 d - 593 d - 97 - d3 - 8 b3e - 23 - d06de5b308”

使用ulid

属性创建的ULID对象Ulid类可以使用以下方法:

12 3 4 5 6 7 8 9 10 11 12 13 14 15
使用ob娱乐下载\组件\Uid\Ulidulid1Ulid ();ulid2Ulid ();//检查给定值是否作为ULID有效isValid= Ulid::isValid (ulidValue);// true或false//获取ULID时间ulid1->取得时间();//例如:float(1584111384.2613)//比较ulid并检查是否相等ulid1->= (ulid2);/ /错误//该方法返回$ulid1 <=> $ulid2 . //ulid1->比较(ulid2);// int(-1)
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。