malahierba-lab / 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-12 00:39:34 UTC
README
为您的laravel项目提供一个简单自动的短ID(如youtube IDs)生成器。由Hashids项目(和malahierba开发团队)支持
安装
在composer.json中添加
{
"require": {
"malahierba-lab/public-id": "1.*"
}
}
然后您需要运行composer update
命令。
非常重要:在composer.json中使用"1.*"表示法,而不是">1"。如果在未来版本中我们更改转换工具,您可能会丢失旧的public id值。为防止这种情况,始终保持在同一主要版本中。
使用
在Public ID安装完成后,您必须将特质添加到任何希望获得public 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功能
获取模型的Public 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文件。