Looking to hire Laravel developers? Try LaraJobs

laravel-sqids maintained by trianity

Description
A Hashids / Sqids bridge for Laravel 10, 11, 12 and 13
Last update
2026/06/28 15:02 (dev-master)
License
Links
Downloads
42
Tags

Comments
comments powered by Disqus

Laravel Sqids

A small Hashids / Sqids bridge for Laravel. It wraps sqids/sqids and exposes a Laravel service provider and facade.

Sqids generate short, URL-safe IDs from non-negative integers and can decode them back to the original numbers. They are useful for public URLs where exposing database IDs is undesirable. Sqids are not encryption and should not be used for sensitive data.

Requirements

Laravel PHP
10.x 8.2+
11.x 8.2+
12.x 8.2+
13.x 8.3+

Laravel 13 requires PHP 8.3 or newer through Laravel's own dependency constraints.

Installation

composer require trianity/laravel-sqids

The package is auto-discovered by Laravel.

Configuration

Publishing the config file is optional:

php artisan vendor:publish --provider="Trianity\Sqids\Providers\PackageServiceProvider"

You can also publish by tag:

php artisan vendor:publish --tag=config-sqids

The published config/sqids.php file contains:

return [
    'minLength' => 12,
    'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890',
    'blocklist' => [
        // 'word',
    ],
];

Usage

Use the facade:

use Trianity\Sqids\Facades\Sqids;

$id = Sqids::encode([4815162342]);

$numbers = Sqids::decode($id);

Use dependency injection:

use Trianity\Sqids\SqidsFactory;

final class LinkController
{
    public function show(SqidsFactory $sqids, string $id): array
    {
        return $sqids->decode($id);
    }
}

Create a custom instance when you need a different alphabet, minimum length, or blocklist:

use Trianity\Sqids\SqidsFactory;

$sqids = new SqidsFactory(minLength: 24);

$id = $sqids->encode([1, 2, 3]);

Upgrade From 11.0.2

No application code changes are required when upgrading from 11.0.2.

This release expands Composer constraints for Laravel 12 and Laravel 13, keeps Laravel 10 and Laravel 11 compatibility, removes the static version field from composer.json, and keeps the existing service provider, facade, config keys, and public namespace unchanged.

Recommended upgrade command:

composer require trianity/laravel-sqids:^11.1 -W