bjoern-goetschke/unique-id

生成唯一标识符的库

4.0.2 2024-01-06 21:23 UTC

README

此库提供了 BjoernGoetschke\UniqueID\UidGeneratorInterface 接口,用于生成唯一标识符。

基本用法

需要唯一标识符的软件可以使用实现 BjoernGoetschke\UniqueID\UidGeneratorInterface 接口的对象,通过调用 generate() 方法按需请求唯一标识符。

/** @var \BjoernGoetschke\UniqueID\UidGeneratorInterface $generator */
// `$uid` will contain a random uid string that is between 10 and 50 characters long
$uid = $generator->generate(10, 50);

安装

此库可通过 Composer 获得

composer require bjoern-goetschke/unique-id:^4.0

版本控制

将使用语义版本控制格式对版本进行编号

<major>.<minor>.<patch>

并遵循以下指南构建

  • 破坏向后兼容性会提升主版本号
  • 添加新功能而不破坏向后兼容性会提升次版本号
  • 错误修复和其它更改会提升补丁版本号

有关语义版本控制的更多信息,请访问 http://semver.org/

请参阅 API 使用和向后兼容性 获取有关如何在不破坏更新和被认为是不兼容更改的情况下使用库的详细信息。

LICENSE

此库在 BSD-2-Clause 许可下发布。您可以在 LICENSE.txt 中找到此许可证的副本。

API 使用和向后兼容性

使用 @api 标签指定接口、类、方法等的预期用法。

如果某个元素不包含 @api 标签,则应将其视为内部元素,其使用可能在任何时候中断。

此规则的例外是特殊元素,如由编程语言定义的构造函数、析构函数或其他钩子方法。这些元素将不会有自己的 @api 标签,但可以被认为是具有与它们所属的类或其它元素相同的 @api 标签。

此库不提供参数名称的向后兼容性保证。方法将具有 @no-named-arguments 标签,以帮助静态分析工具检测和警告使用带命名参数的库,但如果没有某个方法缺少该标签,这并不意味着对该特定方法提供了向后兼容性保证。

@api 使用

    • 创建类的实例
      • 可能在 major 版本发布时中断
    • 扩展类并添加新的构造函数
      • 可能在 major 版本发布时中断
    • 扩展类并添加新方法
      • 可能在任何时候中断,但 minor 版本发布应该没问题(如果基类中已声明且在扩展类中也声明的基类方法添加了非私有方法,则可能会中断)
  • 方法
    • 调用方法
      • 可能在 major 版本发布时中断
    • 覆盖方法(扩展类并声明具有相同名称的方法)并最终添加额外的可选参数
      • 可能在任何时候中断,但 minor 版本发布应该没问题(如果基类的方法中添加了可选参数,则可能会中断)
  • 接口
    • 在类型提示中使用接口(将接口的实例作为参数要求)
      • 可能在 major 版本发布时中断
    • 调用接口的方法
      • 可能在 major 版本发布时中断
    • 实现接口
      • 可能在任何时候中断,但 minor 版本发布应该没问题(如果接口中添加了新方法,则可能会中断)
    • 扩展接口
      • 可能随时中断,但大多数情况下小版本发布应该没问题(如果基础接口中添加了也在扩展接口中声明的方法,则会中断)

@api 扩展

    • 创建类的实例
      • 可能在 major 版本发布时中断
    • 扩展类并添加新的构造函数
      • 可能在 major 版本发布时中断
    • 扩展类并添加新方法
      • 可能在小版本发布时中断,但大多数情况下应该没问题,可能只在大版本发布时中断(如果基础类中添加了在扩展类中也声明的方法,则会中断)
  • 方法
    • 调用方法
      • 可能在 major 版本发布时中断
    • 覆盖方法(扩展类并声明具有相同名称的方法)并最终添加额外的可选参数
      • 可能在 major 版本发布时中断
  • 接口
    • 在类型提示中使用接口(将接口的实例作为参数要求)
      • 可能在 major 版本发布时中断
    • 调用接口的方法
      • 可能在 major 版本发布时中断
    • 实现接口
      • 可能在 major 版本发布时中断
    • 扩展接口
      • 可能在 major 版本发布时中断

@api 稳定

  • 被标记为稳定的所有内容可能只在大版本发布时中断,这意味着除了某些小的内部更改或错误修复外,代码将完全不会改变

@api 内部

  • 被标记为内部的所有内容可能随时中断,但大多数情况下小版本发布应该没问题