iliain/php-zoo-ids

bryanmylee的zoo-ids的PHP版本,最初是用JavaScript编写的

1.0.0 2022-11-21 07:02 UTC

This package is auto-updated.

Last update: 2024-09-06 05:27:50 UTC


README

Latest Stable Version Total Downloads Latest Unstable Version License PHP Version Require

这是一个PHP版本的 bryanmylee的zoo-ids,最初是用JavaScript编写的,而它又是受到了gfycat.com的URL ID的启发。对于使用JavaScript的前端或后端,我强烈推荐您使用他们的包!

生成由形容词和动物名称组成的 可预测唯一 的标识符,并能够播种随机标识符。

ID范围

目前有1347个形容词和221种动物。使用的形容词越多,可用的ID组合就越多。

使用2个形容词时,有400,984,389个可能的唯一ID。

使用3个形容词时,有540,125,971,983个可能的唯一ID。

安装

$ composer require iliain/php-zoo-ids

使用

示例

use Iliain\ZooIDs\UsernameRandomizer;

$randomizer = new UsernameRandomizer();
$randomizer->generateID('short seed'); // KnobbyNauticalKingfisher

// Defaults to the current time if seed is null.
$randomizer->generateID(null, 2, '🍓', 'lowercase'); // enchanted🍓narrow🍓wallaby

如果您想控制名词和形容词的列表,您可以提供自己的

$randomizer = new UsernameRandomizer(['Jumping','Flying','Running','Waving'], ['Rock', 'Paper', 'Scissors']);
$randomizer->generateID(); // JumpingRunningScissors

$randomizer->setAdjectives(['Diving','Walking','Spinning']);
$randomizer->generateID(); // WalkingDivingScissors

$randomizer->setNouns(['Koala', 'Dog']);
$randomizer->generateID(); // WalkingDivingKoala

文档

new UsernameRandomizer($adjectives, $nouns)

adjectives: array

用于生成的形容词数组。如果没有指定,则默认为预提供的列表。

nouns: array

用于生成的名词数组。如果没有指定,则默认为预提供的列表。

generateID($seed, $numAdjectives, $delimiter, $caseStyle)

seed: string|int

用于生成id的种子。这允许我们生成可预测、但随机且唯一的标识符。

默认为当前时间。

numAdjectives: int

用于标识符中的形容词数量。

默认为 2

delimiter: string

用于单词之间的分隔符。分隔符也将用于多词形容词之间。

默认为 ''

caseStyle: string

单词的样式。可能的选项有 'titlecase''camelcase''uppercase''lowercase''togglecase'

generateID($seed, $numAdjectives, $delimiter, 'titlecase'); // FineAntiqueElk

generateID($seed, $numAdjectives, $delimiter, 'camelcase'); // pertinentPoshGoldfinch

generateID($seed, $numAdjectives, $delimiter, 'uppercase'); // PIERCINGRESPONSIBLECAMEL

generateID($seed, $numAdjectives, $delimiter, 'lowercase'); // imaginarywingedsalamander

generateID($seed, $numAdjectives, $delimiter, 'togglecase'); // sTuNnInGdEsCrIpTiVepEaFoWl

默认为 'titlecase'

致谢

所有荣誉都属于 Bryan Lee 和他的 zoo-ids 包。我想有一个PHP版本来使用(用户名生成由PHP CMS处理),并将他的大多数现有代码转换为此格式。目前缺少一些原始功能,例如使用对象作为种子。