macmotp / codegen
生成易于阅读的代码
v0.2.0
2023-07-08 07:14 UTC
Requires
- php: >=8.0
- ext-intl: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.21
- phpunit/phpunit: ^10.2
This package is auto-updated.
Last update: 2024-09-08 09:39:18 UTC
README
生成易于阅读的代码
适用于参考代码、收据代码、代码引用。
要求
- PHP >= 8.1
对于 PHP 7.4,请使用分支 v0.1.4
对于 PHP 8.0,请使用分支 v0.1.5
安装
通过 composer 安装包
composer require macmotp/codegen
使用方法
从任何字符串创建语义化和清洗过的引用代码
use Macmotp\Codegen; $generator = new Codegen(); echo $generator->generate('Bob McLovin'); // (string) 'BOMCLO' echo $generator->generate('Company Name'); // (string) 'COMPNA'
创建代码集合
use Macmotp\Codegen; $generator = new Codegen(); for ($i = 0; $i < 4; $i++) { echo $generator->generate('Bob McLovin'); } // (string) 'BOMCLO' // (string) 'BOMCLV' // (string) 'BOMCLI' // (string) 'BOMCLN' // Or you can simply retrieve the codes directly within a collection: echo $generator->collection('Bob McLovin', 4); // (array) [ // "BOMCLO", // "BOMCLV", // "BOMCLI", // "BOMCLN", // ];
当源字母不足导致可能性较低时,它将自动应用随机字母。 请注意,此包不保证结果唯一性。
配置
设置配置参数
use Macmotp\Codegen; $generator = new Codegen(); echo $generator->setCodeLength(10) ->prepend('PR') ->append('AP') ->generate('Company Name'); // (string) 'PRCOMPNAAP'
配置方法列表
setCodeLength(int $length)
: 生成代码的总长度;prepend(string $prepend)
: 前置字符串;append(string $append)
: 后置字符串;setMaxAttempts(int $maxAttempts)
: 设置最大尝试次数;sanitizeLevel(int $sanitizeLevel)
: 请见下文;
清洗级别
有时,易读代码的目的是在阅读/拼写时避免混淆。因此,可以应用一些过滤器来删除类似图形字母/数字。
选择3种不同级别的清洗
- 级别 1. 低/默认:将过滤出任何不是字母或数字的字符
- 级别 2. 中等:将过滤出 (O - 0 - Q - I - 1) 字符
- 级别 3. 高:将过滤出 (2 - Z - 4 - A - 5 - S - 8 - B - U - V - Y) 字符
级别是包含的,例如,最高级别也将应用低级别和中级过滤器
use Macmotp\Codegen; use Macmotp\Codegen\Config\Config; $generator = new Codegen(); echo $generator->sanitizeLevel(Config::SANITIZE_LEVEL_MEDIUM) ->generate('Bob McLovin'); // (string) 'BBMCLV'
测试
composer test
变更日志
有关最近更改的更多信息,请参阅 CHANGELOG。
贡献
有关详细信息,请参阅 CONTRIBUTING。
安全漏洞
请参阅 我们的安全策略,了解如何报告安全漏洞。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅 许可文件。