haritsyp / laravel-snowflake
Snowflake for laravel
dev-main
2025-09-02 02:28 UTC
Requires
- php: ^7.2|^7.3|^7.4|^8.0
- illuminate/support: ^5.8|^6.0|^7.0|^8.0|^9.0|^10.0|^11.0|^12.0
Requires (Dev)
- phpunit/phpunit: ^9.6
This package is auto-updated.
Last update: 2025-09-02 02:28:19 UTC
README
Snowflake ID generator for Laravel, supports int64 & Base62.
Install
In your terminal:
# install the package
composer require haritsyp/laravel-snowflake
- if you are using laravel <= 5.5, add the following snippet to the config/app.php file under the providers section as follows:
// Add this line 'providers' => [ // Laravel default providers App\Providers\AppServiceProvider::class, // ... Haritsyp\Snowflake\SnowflakeServiceProvider::class, ],
Usage: Trait in Models
- Add the UsesSnowflake trait to any Eloquent model to automatically generate IDs:
<?php namespace App\Models; use Illuminate\Database\Eloquent\Model; use Haritsyp\Snowflake\UseSnowflake; class Order extends Model { use UseSnowflake; public $incrementing = false; // disable auto-increment }
- Now, whenever you create a new Order:
$order = Order::create([ 'name' => 'Sample Order', 'amount' => 1000, ]); echo $order->id;
Parsing Snowflake IDs
You can parse a generated ID to get its components:
$snowflake = app(Haritsyp\Snowflake\Snowflake::class); $parsed = $snowflake->parse($order->id); print_r($parsed); /* [ 'timestamp' => 1612224000000, 'datacenter_id' => 1, 'node_id' => 1, 'sequence' => 0, 'datetime' => '2021-02-02 00:00:00' ] */