not-empty / ulid-php-lib
PHP Universally Unique Lexicographically Sortable Identifier (ULID)
Installs: 1 255
Dependents: 7
Suggesters: 0
Security: 0
Stars: 17
Watchers: 1
Forks: 2
Open Issues: 0
Requires
- php: ^8.3
Requires (Dev)
- mockery/mockery: ^1.6
- phpmd/phpmd: ^2.14
- phpunit/phpunit: ^9.6
- squizlabs/php_codesniffer: ^3.7
README
PHP library to create a ULID unique identifier value
Installation
Release 7.0.0 Requires PHP 8.3
Release 6.0.0 Requires PHP 8.2
Release 5.0.0 Requires PHP 8.1
Release 4.0.0 Requires PHP 7.4
Release 3.0.0 Requires PHP 7.3
Release 2.0.0 Requires PHP 7.2
Release 1.0.0 Requires PHP 7.1
The recommended way to install is through Composer.
composer require not-empty/ulid-php-lib
Usage
Generate an Ulid
use Ulid\Ulid; $ulid = new Ulid(); $ulidFromNow = $ulid->generate(); echo $ulidFromNow;
Generate an Ulid from a timestamp
use Ulid\Ulid; $ulid = new Ulid(); $ulidFromTime = $ulid->generate(1585083964945); echo $ulidFromTime;
Validates if is a valid Ulid from a string
use Ulid\Ulid; $ulid = new Ulid(); $invalid = $ulid->isValidFormat('1585083964945'); var_dump($invalid)
Recover timestamp from Ulid
use Ulid\Ulid; $ulid = new Ulid(); $timeFromUlid = $ulid->getTimeFromUlid('01E48SD97BMWHAW82D229T0C7K'); echo $timeFromUlid;
Recover date from Ulid
use Ulid\Ulid; $ulid = new Ulid(); $dateFromUlid = $ulid->getDateFromUlid('01E48SD97BMWHAW82D229T0C7K'); echo $dateFromUlid;
Recover randomness from Ulid
use Ulid\Ulid; $ulid = new Ulid(); $randomnessFromUlid = $ulid->getRandomnessFromString('01E475VQGHNW990PVHXFDT4C6R'); echo $randomnessFromUlid;
if you want an environment to run or test it, you can build and install dependences like this
docker build --build-arg PHP_VERSION=8.3-rc-cli -t not-empty/ulid-php-lib:php83 -f contrib/Dockerfile .
Access the container
docker run -v ${PWD}/:/var/www/html -it not-empty/ulid-php-lib:php83 bash
Verify if all dependencies is installed
composer install --no-dev --prefer-dist
and run
php sample/ulid-sample.php
Development
Want to contribute? Great!
The project using a simple code. Make a change in your file and be careful with your updates! Any new code will only be accepted with all validations.
To ensure that the entire project is fine:
First you need to building a correct environment to install all dependences
docker build --build-arg PHP_VERSION=8.3-rc-cli -t not-empty/ulid-php-lib:php83 -f contrib/Dockerfile .
Access the container
docker run -v ${PWD}/:/var/www/html -it not-empty/ulid-php-lib:php83 bash
Install all dependences
composer install --dev --prefer-dist
Run all validations
composer check
Not Empty Foundation - Free codes, full minds