UID组件

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 5.1,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

UID组件

UID组件提供了实用程序惟一标识符(uid) uuid和ULIDs等。

5.1

UID组件是在Symfony 5.1中引入的。欧宝娱乐app下载地址

安装

1
美元作曲家需要symfony / ui欧宝娱乐app下载地址d

请注意

如果你安装这个组件之外的Symfony应用程序,你必须要求欧宝娱乐app下载地址供应商/ autoload.php文件在你的代码,使作曲家提供的类加载机制。读这篇文章为更多的细节。

uuid

uuid(全局唯一标识符)是最受欢迎的软件行业的uid。uuid是128位的十六进制字符的数字通常表示为五组:xxxxxxxx-xxxx-Mxxx-Nxxx-xxxxxxxxxxxx(数字是UUID和版本N数字是UUID变种)。

生成uuid

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
使用欧宝娱乐app下载地址\组件\Uid\Uuid;/ / 1型UUID生成UUID使用你的设备的MAC地址和一个时间戳。/ /自动获得,所以你不需要通过任何构造函数参数。美元uuid= Uuid::v1 ();/ / $ uuid是Symfony的实例\ \ Ui欧宝娱乐app下载地址d \ UuidV1组件/ / UUID type 4生成一个随机的UUID,所以你不需要通过任何构造函数参数。美元uuid= Uuid::v4 ();/ / $ uuid是Symfony的实例\ \ Ui欧宝娱乐app下载地址d \ UuidV4组件/ / UUID类型3和5生成一个UUID散列给定的名称空间和名称。类型3使用/ / MD5散列和类型5使用sha - 1。名称空间是另一个UUID(例如,一个类型4 UUID)/ /和名称是一个任意的字符串(例如产品名称;如果它是唯一的)。美元名称空间= Uuid::v4 ();美元的名字=美元产品- >getUniqueName ();美元uuid= Uuid::v3 (美元名称空间,美元的名字);/ / $ uuid是Symfony的实例\ \ Ui欧宝娱乐app下载地址d \ UuidV3组件美元uuid= Uuid::v5 (美元名称空间,美元的名字);/ / $ uuid是Symfony的实例\ \ Ui欧宝娱乐app下载地址d \ UuidV5组件/ /类型UUID 6不是UUID标准的一部分。它是按字母排序的/ /(比如ULIDs)和包含一个60-bit时间戳和63多独特的部分。/ /定义在http://gh.peabody.io/uuidv6/美元uuid= Uuid::v6 ();/ / $ uuid是Symfony的实例\ \ Ui欧宝娱乐app下载地址d \ UuidV6组件

如果你的UUID是由另一个系统,使用fromString ()方法来创建一个对象,利用可用的公用事业Symfony uuid:欧宝娱乐app下载地址

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)“…”(binary contents can't be printed)美元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扩展的方法):

1 2 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
使用欧宝娱乐app下载地址\组件\Uid\NilUuid;使用欧宝娱乐app下载地址\组件\Uid\Uuid;/ /检查如果UUID为空(注意,类/ / NilUuid代替NullUuid遵循UUID标准符号)美元uuid= Uuid::v4 ();美元uuid运算符NilUuid;/ /错误/ /检查的类型UUID使用欧宝娱乐app下载地址\组件\Uid\UuidV4;美元uuid= Uuid::v4 ();美元uuid运算符UuidV4;/ /正确的/ /获取UUID时间(仅可在某些UUID类型)美元uuid= Uuid::v1 ();美元uuid- >取得时间();/ /如浮子(1584111384.2613)/ /比较uuid和检查平等美元uuid1= Uuid::v1 ();美元uuid4= Uuid::v4 ();美元uuid1- >= (美元uuid4);/ /错误/ /这个方法返回:/ / * int(0)如果uuid1美元uuid4是相等的/ / * int > 0如果uuid1大于uuid4美元/ / * int < 0如果uuid1美元小于uuid4美元美元uuid1- >比较(美元uuid4);/ /例如int (4)

ULIDs

ULIDs(统一的惟一按合适的标识符)128位数字通常表示为一个使用字符串:TTTTTTTTTTRRRRRRRRRRRRRRRR(T代表一个时间戳和R表示随机比特)。

ULIDs当使用这些替代uuid是不切实际的。他们提供了128位兼容UUID,他们按字母排序和编码为使用字符串(vs 36-character UUID)。

生成ULIDs

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

1 2 3
使用欧宝娱乐app下载地址\组件\Uid\Ulid;美元ulid=Ulid ();/ /例如01 an4z07by79ka1307sr9x4mv3

如果你ULID是由另一个系统,使用fromString ()方法来创建一个对象,利用可用的公用事业Symfony ULIDs:欧宝娱乐app下载地址

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)“…”(binary contents can't be printed)美元ulid- >toBase32 ();/ /字符串(26)“01 e439tp9xjz9rpfh3t1pybcr8”美元ulid- >toBase58 ();/ /字符串(22)“1 bkocmc5bnrvcuq2ti4eqm”美元ulid- >toRfc4122 ();/ /字符串(36)“0171069 d - 593 d - 97 - d3 - 8 b3e - 23 - d06de5b308”

使用ULIDs

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

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
使用欧宝娱乐app下载地址\组件\Uid\Ulid;美元ulid1=Ulid ();美元ulid2=Ulid ();/ /检查ULID如果给定值是有效的美元isValid= Ulid::isValid (美元ulidValue);/ /真或假/ /获取ULID时间美元ulid1- >取得时间();/ /如浮子(1584111384.2613)/ /比较ULIDs和检查平等美元ulid1- >= (美元ulid2);/ /错误/ /这个方法返回$ ulid1 < = > ulid2美元美元ulid1- >比较(美元ulid2);/ /例如int (1)
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。