benji / public-id
Laravel 的简单 ID 混淆。由 hashids 提供支持
Requires
- php: >=5.5.18
- hashids/hashids: 1.0.5
- laravel/framework: 5.*
This package is not auto-updated.
Last update: 2024-09-23 09:54:44 UTC
README
为您的 Laravel 项目生成简单自动的短 ID 生成器(如 YouTube ID)。由 Hashids 项目(和 malahierba 开发团队)提供支持
安装
在 composer.json 中添加:
{
"require": {
"malahierba-lab/public-id": "1.*"
}
}
然后运行 composer update
命令。
非常重要:在 composer.json 中使用 "1.*" 语法,而不是 ">1"。如果在未来版本中我们更改转换工具,您可能会丢失旧的公共 ID 值。为了防止这种情况,请始终保持在同一主版本中。
使用
在 Public ID 安装后,您必须将特质添加到任何您希望获得公共 ID 功能的模型中。
例如对于 Post 模型
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use Malahierba\PublicId\PublicId;
class Post extends Model {
use PublicId;
//your code...
之后,您可以为 publicID 设置静态变量以定义设置: public_id_salt
、public_id_min_length
、public_id_alphabet
,在上面的示例中
<?php namespace App;
use Illuminate\Database\Eloquent\Model;
use Malahierba\PublicId\PublicId;
class Post extends Model {
use PublicId;
static protected $public_id_salt = 'some_string_for_salt_your_ids';
static protected $public_id_min_length = 6; // min length for your generated short ids.
static protected $public_id_alphabet = 'ABCDEFGHIJKLM'; // Only letters A-M
//your code...
有 4 个预定义的字母表可供使用。将 public_id_alphabet
变量设置为 upper_alphanumeric
、upper_alpha
、lower_alphanumeric
、lower_alpha
将使用这些预定义的字母表
upper_alphanumeric => ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789
upper_alpha => ABCDEFGHIJKLMNOPQRSTUVWXYZ
lower_alphanumeric => abcdefghijklmnopqrstuvwxyz0123456789
lower_alpha => abcdefghijklmnopqrstuvwxyz
这就完成了。现在您可以在 Post 模型中使用 Public ID 功能
获取模型的公共 ID(即短 ID)
$short_id = $post->public_id;
根据公共 ID 字符串获取模型
$post = Post::findByPublicId($public_id);
使用公共 ID 字符串获取原始 ID
$original_id = Post::publicIdDecode($public_id);
大数字
默认情况下可以管理的最大 ID 是一百亿(1.000.000.000)。但,这取决于您的环境,这个数字可能会更大。要测试您环境中最大 ID 的设置,您可以使用 testPublicIdMaxInt
函数
$max_id = Post::testPublicIdMaxInt();
许可证
此项目拥有 MIT 许可证。有关更多信息,请阅读 LICENCE 文件。