tsdevelopment / doctrine-behaviors-hashidable
Add hashidable behaviour to your doctrine entities
Installs: 1
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Type:symfony-bundle
Requires
- php: ^7.2
- ext-bcmath: *
- ext-ctype: *
- ext-iconv: *
- doctrine/doctrine-bundle: ^2.1
- roukmoute/hashids-bundle: ^2.3
- symfony/doctrine-bridge: ^4.4|^5.0|^5.1
- symfony/dotenv: ^4.4|^5.0|^5.1
- symfony/flex: ^1.3.1
- symfony/framework-bundle: ^4.4|^5.0|^5.1
- symfony/orm-pack: ^1.0
- symfony/yaml: ^4.4|^5.0|^5.1
Requires (Dev)
- symfony/phpunit-bridge: ^5.1
This package is not auto-updated.
Last update: 2025-03-09 12:50:39 UTC
README
This PHP library provides traits and interfaces that add hashidable behaviour (known from youtube video IDs) to Doctrine entities.
Install
composer require tsdevelopment/doctrine-behaviors-hashidable
Usage
All you have to do is to define a Doctrine entity:
- implement
HashidableInterface
interface - add
HashidableTrait
trait
<?php declare(strict_types=1); namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use TSDevelopment\DoctrineBehaviorsHashidable\Contract\Entity\HashidableInterface; use TSDevelopment\DoctrineBehaviorsHashidable\Traits\HashidableTrait; /** * @ORM\Entity */ class HashidableEntity implements HashidableInterface { use HashidableTrait; /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") * @var int */ private $id; public function getId(): int { return $this->id; } }
As default the id
property will be used to create the hashId
. But you can override it:
<?php declare(strict_types=1); namespace App\Entity; use Doctrine\ORM\Mapping as ORM; use TSDevelopment\DoctrineBehaviorsHashidable\Contract\Entity\HashidableInterface; use TSDevelopment\DoctrineBehaviorsHashidable\Traits\HashidableTrait; /** * @ORM\Entity */ class HashidableCustomGetterEntity implements HashidableInterface { use HashidableTrait; /** * @ORM\Id * @ORM\Column(type="integer") * @ORM\GeneratedValue(strategy="AUTO") * @var int */ private $customId; public function getCustomId(): int { return $this->customId; } public function getHashidableField(): string { return 'customId'; } }
Configuration
Internally the bundle uses https://github.com/roukmoute/hashids-bundle to generate
hashids. See the configuration
part for all possible options.