seyfahni / haikunator
Generate random words or phrases usable as IDs.
Fund package maintenance!
seyfahni
www.paypal.me/seyfahni
Installs: 153
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/seyfahni/haikunator
Requires
- php: >=8.2
Requires (Dev)
- phpunit/phpunit: ^9.5
README
This project was inspired by HaikunatorPHP and Jitsi.
It allows generation of human-friendly IDs.
Installation
composer require seyfahni/haikunator
Usage
As a consumer you can expect an Haikunator instance to be injected into your class.
To generate an id just call the haikunate() method:
use seyfahni\Haikunator\Haikunator; /** @var Haikunator $haikunator */ $haikunator->haikunate();
Creating an instance via Haikunators
The Haikunators helper class contains methods for easy creation of common Haikunators:
use seyfahni\Haikunator\Haikunators; $atroxHaikunator = Haikunators::atroxHaikunator(); $jitsiHaikunator = Haikunators::jitsiHaikunator();
Creating a Haikunator by hand
There are multiple implementation of the Haikunator interface provided.
Usually you want to put a combination of WordListHaikunators and CharactersHaikunator into one AppendingHaikunator.
use seyfahni\Haikunator\AppendingHaikunator; use seyfahni\Haikunator\CharactersHaikunator; use seyfahni\Haikunator\ConstantHaikunator; use seyfahni\Haikunator\MtRandIntegerGenerator; use seyfahni\Haikunator\WordListHaikunator; $numberGenerator = new MtRandIntegerGenerator(); # Generate IDs like my-useful-aHt $haikunator = new AppendingHaikunator([ new ConstantHaikunator('my'), new WordListHaikunator($numberGenerator, ['fancy', 'useful', 'modular']), new CharactersHaikunator($numberGenerator, 'Haikunator', 3), ], '-' );
The IntegerGenerator interface is used by some Haikunator implementations so that
any kind of number generation can be used via adapter implementation.
Extension
Use your own generation logic by implementing the Haikunator interface and using an instance of it via "creation by hand".