nice-yu/unique-code
Composer 安装命令:
composer require nice-yu/unique-code
包简介
Generate a unique invitation code within the current system
README 文档
README
Unit Tests
PHPUnit 9.6.0 by Sebastian Bergmann and contributors. Runtime: PHP 7.4 Configuration: /var/www/packages/unique-code/phpunit.xml Functions (NiceYu\Tests\Functions) ✔ Unique encode [1.34 ms] ✔ Unique decode [17.30 ms] Unique Code (NiceYu\Tests\UniqueCode) ✔ Getters [0.17 ms] ✔ Encode decode consistency [0.21 ms] ✔ Encode with max length [3.46 ms] ✔ Encode exceeding max [1.02 ms] ✔ Invalid decode [0.13 ms] ✔ Set seed number [0.15 ms] ✔ Set dictionaries [1.03 ms] ✔ Set complement [0.13 ms] ✔ Set max [0.12 ms] Time: 00:00.040, Memory: 8.00 MB OK (11 tests, 20 assertions)
Default 6 Digits
- In general, 6 digits are sufficient for large-scale projects.
- If needed, you can modify it to 7 digits for cases like order calculations.
| Digits | Maximum Value | Calculation |
|---|---|---|
| 5 | 24,300,000 | 30^5 |
| 6 | 729,000,000 | 30^6 |
| 7 | 21,870,000,000 | 30^7 |
Installation
System Requirements
- PHP >= 7.4
Install Composer
If you haven't installed Composer yet, install it first:
curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer
Install Library
composer require nice-yu/unique-code
Parameter Description
| Parameter Name | Default Value | Description |
|---|---|---|
| seed_number | MD5 | The seed number for shuffling the dictionary, default is to use system info hashed with MD5 |
| dictionaries | 0-9, A-Z | Dictionary info, default removed characters 0, O, 1, I, and Y, Z as separators |
| complement | Y-Z | Separator characters |
| max | 6 | Number of digits to generate |
Default Parameters
- You can set parameters in a fluent manner
use NiceYu\UniqueCode\UniqueCode; UniqueCode::setSeedNumber(0) ->setDictionaries([ '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'J', 'K', 'L', 'M', 'N', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X' ]) ->setComplement(['Y', 'Z']) ->setMax(6);
Get Parameters
use NiceYu\UniqueCode\UniqueCode; UniqueCode::getSeedNumber(); UniqueCode::getDictionaries(); UniqueCode::getComplement(); UniqueCode::getMax();
Generate Unique Code
- Note the parameters set, if the maximum value is exceeded, it will return
null - If used across multiple servers, ensure the
seed_numbervalue is consistent to avoid duplicate unique codes
use NiceYu\UniqueCode\UniqueCode; $id = 123456789; $code = UniqueCode::encode($id); // Generate $decodedId = UniqueCode::decode($code); // Reverse
Function Usage
- If you prefer not to use the class, you can use the functions directly, but mind the parameters
$id = 12345; $code = unique_encode($id); // Generate $decodedId = unique_decode($code); // Reverse
Error Handling
- If encoding fails (e.g., exceeding the maximum value), the
encodemethod will returnnull. Ensure to check for this when using. - In distributed systems, ensure all servers use the same
seed_numberto avoid encoding conflicts.
License
This project is licensed under the MIT License.
nice-yu/unique-code 适用场景与选型建议
nice-yu/unique-code 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 12 次下载、GitHub Stars 达 0, 最近一次更新时间为 2024 年 08 月 04 日, 在 PHP 生态内属于活跃度较高的组件。
它主要适用于以下技术方向: 「invitation code」 「unique code」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。
我们在过去多个企业项目中使用过 nice-yu/unique-code 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。
基于 nice-yu/unique-code 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 nice-yu/unique-code 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
Memio's PrettyPrinter, used to generate PHP code from given Model
Laravel queue connection that prevents identical jobs from being queued
Provides a HasSlug trait that will generate a unique slug when saving your Laravel Eloquent model.
A Monolog processor to add X-Request-Id or UNIQUE_ID env to monolog stack if present, provide a default one otherwise. Optionally, add a forwarded request-id list.
An ID Generator for PHP based on Snowflake Algorithm (Twitter announced).
A PHP library for accessing the Trustpilot Invitation API and fetching recieved Product reviews
统计信息
- 总下载量: 12
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 19
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2024-08-04