定制 nice-yu/unique-code 二次开发

按需修改功能、优化性能、对接业务系统,提供一站式技术支持

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

nice-yu/unique-code

Composer 安装命令:

composer require nice-yu/unique-code

包简介

Generate a unique invitation code within the current system

README 文档

README

简体中文 | English

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

  1. In general, 6 digits are sufficient for large-scale projects.
  2. 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_number value 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 encode method will return null. Ensure to check for this when using.
  • In distributed systems, ensure all servers use the same seed_number to 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 我们能提供哪些服务?
定制开发 / 二次开发

基于 nice-yu/unique-code 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 12
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 19
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-08-04