Skip to content

phpgears/identity-extra

Repository files navigation

PHP version Latest Version License

Build Status Style Check Code Quality Code Coverage

Total Downloads Monthly Downloads

Identity Extra

Non UUID based identity objects for PHP

This package extends phpgears/identity to provide non UUID-based identities

Installation

Composer

composer require phpgears/identity-extra

Usage

Require composer autoload file

require './vendor/autoload.php';

Mongo ObjectId

You need to install and enable ext-mongodb through your distro's repos or PECL

sudo pecl install mongodb
use Gears\Identity\Extra\ObjectIdIdentity;
use Gears\Identity\Extra\ObjectIdIdentityGenerator;
use MongoDB\BSON\ObjectId;

$identity = ObjectIdIdentity::fromString((string) new ObjectId());

// From generator
$identity = (new ObjectIdIdentityGenerator())->generate();

ULID (Universally Unique Lexicographically Sortable Identifier)

you need to require https://github.com/robinvdvleuten/php-ulid

composer require obinvdvleuten/ulid
use Gears\Identity\Extra\UlidIdentity;
use Gears\Identity\Extra\UlidIdentityGenerator;
use Ulid\Ulid;

$identity = UlidIdentity::fromString((string) Ulid::generate());

// From generator
$identity = (new UlidIdentityGenerator())->generate();

Find more information about ULID at https://github.com/ulid/spec

KSUID (K-Sortable Globally Unique IDs)

you need to require https://github.com/tuupola/ksuid

composer require tuupola/ksuid
use Gears\Identity\Extra\KsuidIdentity;
use Gears\Identity\Extra\KsuidIdentityGenerator;
use Tuupola\KsuidFactory;

$identity = KsuidIdentity::fromString((string) KsuidFactory::create());

// From generator
$identity = (new KsuidIdentityGenerator())->generate();

Find more information about KSUID at https://github.com/segmentio/ksuid

Xid (Globally Unique ID)

you need to require https://github.com/fpay/xid-php

composer require fpay/xid-php
use Gears\Identity\Extra\XidIdentity;
use Gears\Identity\Extra\XidIdentityGenerator;
use Fpay\Xid\Generator;

$identity = XidIdentity::fromString((string) Generator::create());

// From generator
$identity = (new XidIdentityGenerator())->generate();

Find more information about Xid at https://github.com/fpay/xid-php

Contributing

Found a bug or have a feature request? Please open a new issue. Have a look at existing issues before.

See file CONTRIBUTING.md

License

See file LICENSE included with the source code for a copy of the license terms.

About

Immutable non-UUID identity objects for PHP

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages