https://github.com/kaiopiola/keygen-package
Pattern-based key generator
https://github.com/kaiopiola/keygen-package
keygen keygeneration keygenerator keygens php
Last synced: 5 months ago
JSON representation
Pattern-based key generator
- Host: GitHub
- URL: https://github.com/kaiopiola/keygen-package
- Owner: kaiopiola
- License: mit
- Created: 2022-01-12T11:39:51.000Z (over 3 years ago)
- Default Branch: main
- Last Pushed: 2024-05-14T14:15:44.000Z (over 1 year ago)
- Last Synced: 2024-10-23T16:39:23.901Z (12 months ago)
- Topics: keygen, keygeneration, keygenerator, keygens, php
- Language: PHP
- Homepage: https://packagist.org/packages/kaiopiola/keygen
- Size: 35.2 KB
- Stars: 13
- Watchers: 1
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.MD
- Changelog: CHANGELOG.MD
- License: LICENSE
Awesome Lists containing this project
README
# Keygen
### Essa documentação está disponível também em [Português do Brasil](README_pt-BR.MD).
***If you find any bug, feel free to [create a new issue](https://github.com/kaiopiola/keygen-package/issues/new?labels=bug)!***
The Keygen plugin is a key or serial generator based on user-defined mask patterns.
The plugin is able to generate keys like the example below:```6W2F-4RJB-KV0Z-ADA6-4SJ2```
It can be used to generate keys for several purposes, some examples are:
- Unique links to reset passwords
- Registration via invitation link
- Two-Factor authentication codes
- File sharing links
- Product redemption keys
- Discount coupons
- Referral codes
## Installation
Fisrt, run the following command in your project:
``` console
composer require kaiopiola/keygen
```
Then, call the main class on the PHP file you want to load it:
``` php
use Kaiopiola\Keygen\Key;
```
## How Keygen works
### How to create a new key
To create a new key, just instantiate the class in a variable, and then define its configuration parameters, as shown in the example below:
``` php
# Instantiating class in a variable:
$exampleKey = new Key;
# Setting parameters:
$exampleKey->setPattern("XXXX-NNNN-LLLL"); // Defines the pattern that the code will use to define its new key.
// The letters represent the type of content that can be used in that space, as per the rule:
// X - Any letter or number
// N - Numbers only as defined
// L - Letters only as defined
// Any other characters like dashes, dots, slashes, and even other letters and numbers, will not be replaced.
// If this property is not defined, the following will be used by default: XXXXX-XXXXX-XXXXX
$exampleKey->setNumbers("789"); // Defines the numbers that can compose your key, if not defined, it will use by default "0123456789"
$exampleKey->setLetters("ABC"); // Defines the letters that can compose your key, if not defined, it will use by default "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
$exampleKey->generate(); // Generate your key and return a string value with the result
```
### How to create a new unique key
You also have the option to generate an unique key to avoid duplicates, using the example below:
``` php
$exampleKey->setExistingKeys([]); // Defines the existing keys that the code will avoid duplicates. Must be type array.
$exampleKey->generateUnique(); // Generate your key and return a string value with the result
```
This is also compatible with ```setPattern```, ```setNumbers``` and ```setLetters``` too!
## Considerations
This project is open to contributions, whether with suggestions or improvements to the code of any kind.
Feel free to participate in its development.
## License
MIT License (MIT). Please, read the [License File](LICENSE) for more informations.