1. Go to this page and download the library: Download michalsn/codeigniter4-uuid library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
michalsn / codeigniter4-uuid example snippets
namespace Config;
use Michalsn\CodeIgniterUuid\Config\Uuid as BaseUuid;
use Michalsn\CodeIgniterUuid\Enums\UuidType;
use Michalsn\CodeIgniterUuid\Enums\UuidVersion;
use Symfony\Component\Uid\Uuid as SymfonyUuid;
class Uuid extends BaseUuid
{
// Default UUID version for generation
public UuidVersion $defaultVersion = UuidVersion::V7;
// Default storage type: STRING (36 chars) or BYTES (16 bytes binary)
public UuidType $defaultType = UuidType::STRING;
// ...
}
namespace App\Models;
use CodeIgniter\Model;
use Michalsn\CodeIgniterUuid\Traits\HasUuid;
class ProjectModel extends Model
{
use HasUuid;
protected $table = 'projects';
protected $primaryKey = 'id';
protected $useAutoIncrement = false; // Required for UUID primary keys
protected $returnType = 'array';
protected $allowedFields = ['name', 'description'];
// Define UUID fields using casts
protected array $casts = [
'id' => 'uuid',
];
}
protected array $casts = [
// Use defaults from config
'id' => 'uuid',
// Specify version only
'id' => 'uuid[v4]',
// Specify version and storage type
'id' => 'uuid[v7,bytes]',
// Use default version with specific storage type
'id' => 'uuid[,bytes]',
];
// Convenience methods (recommended)
$uuid = service('uuid')->uuid4();
$uuid = service('uuid')->uuid7();
$ulid = service('uuid')->ulid();
// Or use generate() with string parameter
$uuid = service('uuid')->generate('v4');
$uuid = service('uuid')->generate('v7');
// Or use generate() with enum for type safety
use Michalsn\CodeIgniterUuid\Enums\UuidVersion;
$uuid = service('uuid')->generate(UuidVersion::V4);
$uuid = service('uuid')->generate(UuidVersion::ULID);
// Generate using default version from config
$uuid = service('uuid')->generate();
// From string (with or without hyphens)
$uuid = service('uuid')->fromString('550e8400-e29b-41d4-a716-446655440000');
$uuid = service('uuid')->fromString('550e8400e29b41d4a716446655440000');
// From ULID string
$ulid = service('uuid')->fromString('01ARZ3NDEKTSV4RRFFQ69G5FAV');
// From UUID Base32 encoding
$uuid = service('uuid')->fromBase32('01JPRHWQCKFB7V1KMWP7PRRSMG');
// From unknown format (string or binary)
$uuid = service('uuid')->fromValue($unknownValue);
// Check if a string is a valid UUID or ULID
service('uuid')->isValid('550e8400-e29b-41d4-a716-446655440000'); // true
service('uuid')->isValid('01ARZ3NDEKTSV4RRFFQ69G5FAV'); // true (ULID)
service('uuid')->isValid('not-a-uuid'); // false
use Michalsn\Uuid\UuidModel;
class ProjectModel extends UuidModel
{
protected $uuidVersion = 'uuid7';
protected $uuidFields = ['id', 'tracking_id'];
}
use CodeIgniter\Model;
use Michalsn\CodeIgniterUuid\Traits\HasUuid;
class ProjectModel extends Model
{
use HasUuid;
protected $useAutoIncrement = false;
protected array $casts = [
'id' => 'uuid[v7]',
'tracking_id' => 'uuid[v4]',
];
}
use Michalsn\Uuid\UuidEntity;
class ProjectEntity extends UuidEntity
{
protected $uuids = ['id', 'category_id'];
}
use CodeIgniter\Entity\Entity;
class ProjectEntity extends Entity
{
// No special UUID configuration needed
}
// In model file
public $uuidVersion = 'uuid7';
// In config file
use Michalsn\CodeIgniterUuid\Enums\UuidVersion;
public UuidVersion $defaultVersion = UuidVersion::V7;
// These work (backward compatible)
$uuid->toString(); // alias for toRfc4122()
$uuid->getBytes(); // alias for toBinary()
$uuid->getHex(); // alias for toHex()
// New Symfony UID methods (preferred)
$uuid->toRfc4122();
$uuid->toBinary();
$uuid->toHex();
$uuid->toBase32();
$uuid->toBase58();