aracoool/yii2-uuid

Yii 2 UUID 扩展。一个用于生成 RFC 4122 版本 3、4 和 5 的通用唯一标识符 (UUID) 的 PHP 7.0+ 库。

安装次数: 44,281

依赖项: 0

建议者: 0

安全性: 0

星标: 5

关注者: 3

分支: 1

开放问题: 0

类型:yii2-extension

1.1.1 2017-03-24 05:44 UTC

This package is auto-updated.

Last update: 2024-09-08 10:41:37 UTC


README

Latest Stable Version Packagist

Yii 2 UUID 扩展。一个用于生成 RFC 4122 版本 3、4 和 5 的通用唯一标识符 (UUID) 的 PHP 7.0+ 库。

关于

来自 维基百科

UUID 的目的是使分布式系统能够在无需显著中央协调的情况下唯一标识信息。在此上下文中,"唯一"一词应理解为"实际上唯一"而不是"保证唯一"。由于标识符的大小是有限的,两个不同的项目可能共享相同的标识符。标识符的大小和生成过程需要选择,以便在实际中足够不可能发生。任何人都可以创建一个 UUID 并使用它来标识某物,有合理的信心相同的标识符永远不会被任何其他人为标识其他事物而无意中创建。因此,带有 UUID 标记的信息可以稍后组合到单个数据库中,而无需解决标识符(ID)冲突。

安装

推荐的安装方法是使用 PackagistComposer。运行以下命令安装包并将其添加到项目的 composer.json 文件中。

composer require --prefer-dist aracoool/yii2-uuid

使用方法

V4 行为的使用

use \aracoool\yii2-uuid\UuidBehavior

/**
 * @return array
 */
public function behaviors()
{
    return [
        [
            'class' => UuidBehavior::class,
            'version' => Uuid::V4
        ],
        ...
    ];
}

V3 和 V5 行为的使用

use \aracoool\yii2-uuid\UuidBehavior

/**
 * @return array
 */
public function behaviors()
{
    return [
        [
            'class' => UuidBehavior::class,
            'version' => Uuid::V3, // Uuid::V5
            'namespace' => Uuid::NAMESPACE_NIL,
            'nameAttribute' => 'title' // Value of this attribute SHOULD be unique in your database
        ],
        ...
    ];
}
use \aracoool\yii2-uuid\Uuid

Uuid::v3(Uuid::NAMESPACE_URL, 'http://example.com/');
Uuid::v5(Uuid::NAMESPACE_DSN, 'www.google.com');
Uuid::v3(Uuid::NAMESPACE_OID, '1.3.6.1');
Uuid::v5(Uuid::NAMESPACE_X500, 'c=ca');
Uuid::v4();

验证器的使用

use \aracoool\yii2-uuid\UuidValidator;

/**
 * @return array
 */
 public function rules()
 {
     return [
         ...
         ['attribute_id', UuidValidator::class],
         ...
     ];
 }