ufucms/laravel-snowflake 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

ufucms/laravel-snowflake

Composer 安装命令:

composer require ufucms/laravel-snowflake

包简介

分布式唯一ID,基于雪花算法。

README 文档

README

这个 Laravel 包生成 64 位标识符,就像 Twitter 中的雪花一样。

Laravel 安装

composer require "ufucms/laravel-snowflake"

php artisan vendor:publish --provider="Ufucms\Snowflake\Providers\LaravelServiceProvider"

Lumen 安装

  • Install via composer
composer require "ufucms/laravel-snowflake"
  • Bootstrap file changes 将以下代码段添加到 providers 部分下的 bootstrap/app.php 文件中,如下所示:
// Add this line
$app->register(Ufucms\Snowflake\Providers\LumenServiceProvider::class);

Usage

Get instance

use Ufucms\Snowflake\Snowflake;

$snowflake = new Snowflake();

or

$snowflake = $this->app->make('Ufucms\Snowflake\Snowflake');

or

$snowflake = app('Ufucms\Snowflake\Snowflake');

Generate snowflake identifier

$id = $snowflake->nextId();

or

$id = $snowflake->id();

or

$id = Snowflake::nextId();

Usage with Eloquent

Ufucms\Snowflake\HasSnowflakePrimary 特征添加到您的 Eloquent 模型中。 此特征使主键类型为snowflake。 Trait 会自动将 $incrementing 属性设置为 false。

<?php
namespace App;

use Ufucms\Snowflake\HasSnowflakePrimary;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasSnowflakePrimary, Notifiable;
}

Column type id is supported.

/**
 * Run the migrations.
 *
 * @return void
 */
public function up()
{
    Schema::create('users', function (Blueprint $table) {
        $table->id();
        $table->string('name');
        $table->string('email')->unique();
        $table->string('password');
        $table->rememberToken();
        $table->timestamps();
    });
}

JavaScript support

由于 JavaScript 无法处理 64 位整数,因此还有 HasShortPrimary,它为 JavaScript 可以处理的 53 位整数创建 ID。

<?php
namespace App;

use Ufucms\Snowflake\HasShortPrimary;
use Illuminate\Notifications\Notifiable;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasShortPrimary, Notifiable;
}

Configuration

If config/snowflake.php not exist, run below:

php artisan vendor:publish

Licence

MIT licence

统计信息

  • 总下载量: 90
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 0
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2019-07-30

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固