承接 lava83/laravel-sqid 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

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

lava83/laravel-sqid

最新稳定版本:v0.1.3

Composer 安装命令:

composer require lava83/laravel-sqid

包简介

A thin Laravel integration for Sqids: encode lists of integers into short, URL-friendly strings and decode them back, configurable via alphabet, min_length and blocklist.

README 文档

README

Latest Version on Packagist GitHub Tests Action Status GitHub Code Style Action Status Total Downloads

A thin, idiomatic Laravel integration for Sqids. It encodes lists of integers into short, URL-friendly strings and decodes them back, configurable via alphabet, min_length and blocklist.

Note: Sqids are not sequential, sortable or cryptographically secure, and they are not meant to replace database primary keys. They obfuscate integers into compact, unguessable-looking strings — for example to expose internal IDs in URLs without leaking the raw values.

use Lava83\LaravelSqid\Facades\LaravelSqid;

LaravelSqid::encode([1, 2, 3]);   // "86Rf07"
LaravelSqid::decode('86Rf07');    // Collection: [1, 2, 3]

Requirements

  • PHP ^8.3
  • Laravel 12 or 13 (illuminate/contracts ^12.0||^13.0)

Installation

Install the package via Composer:

composer require lava83/laravel-sqid

The service provider and the LaravelSqid facade are registered automatically via package discovery.

Optionally publish the config file:

php artisan vendor:publish --tag="laravel-sqid-config"

Configuration

The published config/sqid.php looks like this:

use Sqids\Sqids;

return [
    'min_length' => env('LARAVEL_SQID_MIN_LENGTH', Sqids::DEFAULT_MIN_LENGTH),
    'alphabet' => env('LARAVEL_SQID_ALPHABET', Sqids::DEFAULT_ALPHABET),
    'blocklist' => env('LARAVEL_SQID_BLOCKLIST', Sqids::DEFAULT_BLOCKLIST),
];

All three options can be driven by environment variables:

ENV variable Config key Description
LARAVEL_SQID_MIN_LENGTH min_length Minimum length of the generated Sqid string.
LARAVEL_SQID_ALPHABET alphabet Custom alphabet used for encoding.
LARAVEL_SQID_BLOCKLIST blocklist Words that must not appear in any generated Sqid string.

The underlying Sqids\Sqids instance is bound in the container from this config, so customizing the config is all you need.

Usage

Facade

use Lava83\LaravelSqid\Facades\LaravelSqid;

// Encode an array or a Collection of integers
LaravelSqid::encode([1, 2, 3]);          // "86Rf07"
LaravelSqid::encode(collect([1, 2, 3])); // "86Rf07"

// Decode back into a Collection<int>
LaravelSqid::decode('86Rf07');           // collect([1, 2, 3])

Helpers

Global helper functions are available everywhere:

sqid_encode([1, 2, 3]);   // "86Rf07"
sqid_decode('86Rf07');    // collect([1, 2, 3])

Collection macro

A sqidsEncode() macro is mixed into Illuminate\Support\Collection:

collect([1, 2, 3])->sqidsEncode(); // "86Rf07"

Encoding only accepts integers

encode() (and therefore the helper and the collection macro) only accepts integers. Anything else throws an OnlyIntegersCanBeSqidEncoded exception:

use Lava83\LaravelSqid\Exceptions\OnlyIntegersCanBeSqidEncoded;

LaravelSqid::encode([1, 2, 'foo']); // throws OnlyIntegersCanBeSqidEncoded

Testing

composer test

Changelog

Please see CHANGELOG for more information on what has changed recently.

Contributing

Please see CONTRIBUTING for details.

Security Vulnerabilities

Please review our security policy on how to report security vulnerabilities.

Credits

License

The MIT License (MIT). Please see License File for more information.

统计信息

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

GitHub 信息

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

其他信息

  • 授权协议: MIT
  • 更新时间: 2026-06-10

承接程序开发

PHP开发

VUE

Vue开发

前端开发

小程序开发

公众号开发

系统定制

数据库设计

云部署

网站建设

安全加固