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
Requires
- php: ^8.0
- doctrine/orm: ^3.2
- hashids/hashids: ^4.1
- symfony/doctrine-bridge: ^6.4
- symfony/framework-bundle: ^6.0
- symfony/http-foundation: ^6.0
- symfony/http-kernel: ^6.0
- symfony/twig-bundle: ^6.0
- symfony/yaml: ^6.0
Requires (Dev)
- phpunit/phpunit: ^10.2
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 }}