vipinbose/hashids-bundle

Integrates hashids/hashids in a Symfony project

Installs: 324

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 0

Forks: 16

Type:symfony-bundle

pkg:composer/vipinbose/hashids-bundle

v1.0.1 2024-06-06 11:39 UTC

This package is auto-updated.

Last update: 2025-12-18 14:59:48 UTC


README

Integrates hashids/hashids in a Symfony project.

Installation using composer

These commands requires you to have Composer installed globally.
Open a command console, enter your project directory and execute the following commands to download the latest stable version of this bundle:

Using Symfony Flex

    composer config extra.symfony.allow-contrib true
    composer req vipinbose/hashids-bundle

Using Symfony Framework only

    composer require vipinbose/hashids-bundle

If this has not been done automatically, enable the bundle by adding the following line in the config/bundles.php file of your project:

<?php

return [
    …,
    Vipinbose\HashidsBundle\VipinboseHashidsBundle::class => ['all' => true],
];

Configuration

The configuration (config/packages/vipinbose_hashids.yaml) looks as follows :

vipinbose_hashids:

    # if set, the hashids will differ from everyone else's
    salt:            ""

    # if set, will generate minimum length for the id
    # 0 — meaning hashes will be the shortest possible length
    min_hash_length: 0

    # if set, will use only characters of alphabet string
    alphabet:        "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890"

    # if set to true, it tries to convert all arguments passed to the controller
    auto_convert:    true

Usage

use Vipinbose\HashidsBundle\Interfaces\HashidsServiceInterface;

public function __construct(
        private HashidsServiceInterface $hasher,
    ) {
    }

Next it's the same things of official documentation.

Hashids Converter

Converter Name: hashids.converter

The hashids converter attempts to convert any attribute set in the route into an integer parameter.

You should use hashid:

/**
 * @Route("/users/{hashid}")
 */
public function getAction(User $user)
{
}

Using auto_convert

auto_convert tries to convert all arguments in controller.

vipinbose_hashids:
  auto_convert: true

Twig Extension

Usage

{{ path('users.show', {'hashid': user.id | hashids_encode }) }}
{{ app.request.query.get('hashid') | hashids_decode }}