techgrid/hashid-bundle

Symfony Hash Id

Installs: 1

Dependents: 0

Suggesters: 0

Security: 0

Stars: 0

Watchers: 1

Forks: 0

Open Issues: 0

Type:symfony-bundle

dev-main 2022-01-15 08:53 UTC

This package is not auto-updated.

Last update: 2024-04-21 18:26:08 UTC


README

PHP from Packagist Build Status Code Coverage Scrutinizer Code Quality

Symfony bundle for encoding integer route parameters and decoding request parameters with http://www.hashids.org/

Please use this version with Symfony ≥5.0

Replace predictable integer url parameters in easy way:

  • /hash-id/demo/decode/216/30 => /hash-id/demo/decode/X46dBNxd79/30
  • /order/315 => /order/4w9aA11avM

Pros:

  • no need to use extra filters - use {{ url('route_name', {'id': 1}) }} in twig template or $this->generateUrl('route_name', ['id' => 1]); in controller or service
  • Doctrine Converter compatible

Instalation

composer require quile8x/hashid-bundle-new

Hashids configuration

# config/packages/pgs_hash_id.yaml

pgs_hash_id:
    converter:
        hashids:
            salt: 'my super salt'
            min_hash_length: 20
            alphabet: 'qwertyasdzxc098765-'

Controller configuration

use Pgs\HashIdBundle\Annotation\Hash;

class UserController extends Controller
{
    /**
     * @Hash("id")
     */
    public function edit(int $id)
    {
    //...
    }

    /**
     * Process multiple parameters - 'oneMore' will not be processed
     * @Route(name="test", path="/test/{id}/{other}/{oneMore}")
     * @Hash({"id","other"})
     */
    public function test(int $id, int $other, int $oneMore)
    {
    //...
    }
}

You can also check our DemoController.

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/PGSSoft/HashId.

About

The project maintained by software development agency PGS Software. See our other open-source projects or contact us to develop your product.

Follow us

Twitter URL Twitter Follow