PHP code example of sangkan / wiji
1. Go to this page and download the library: Download sangkan/wiji 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/ */
sangkan / wiji example snippets
use Sangkan\Wiji\Wiji;
$wiji = new Wiji();
// Generate
$wiji->generate(); // → '01JKM5WXR9P003K1F4Q8XTBZN2'
$wiji->generateBinary(); // → 16 raw bytes (string)
$wiji->generateUuid(); // → '019d2257-972f-1a4e-36ea-81d64ed08dfc'
$wiji->generateHex(); // → '019d2257972f1a4e36ea81d64ed08dfc'
// Parse
Wiji::parse('01JKM5WXR9P003K1F4Q8XTBZN2');
// → ['timestamp_us' => ..., 'timestamp_ms' => ..., 'datetime' => DateTimeImmutable, ...]
// Utilities
Wiji::isValid('01JKM5WXR9P003K1F4Q8XTBZN2'); // → true
Wiji::timestampUs($id); // → int (microseconds)
Wiji::compare($a, $b); // → -1 | 0 | 1
// database/migrations/xxxx_create_posts_table.php
Schema::create('posts', function (Blueprint $table) {
$table->string('id', 26)->primary();
// atau binary:
// $table->binary('id', 16)->primary();
$table->string('title');
$table->timestamps();
});
// app/Models/Post.php
use Sangkan\Wiji\Wiji;
class Post extends Model
{
protected $keyType = 'string';
public $incrementing = false;
protected static function boot(): void
{
parent::boot();
static::creating(function (self $model) {
if (empty($model->{$model->getKeyName()})) {
$wiji = new Wiji();
$model->{$model->getKeyName()} = $wiji->generate();
}
});
}
}