damess / zf2-hashids
Zend Framework 2 module for hashids allowing you to obfuscate ID's in your API
Installs: 1 588
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: >=5.3.3
- hashids/hashids: 1.0.*
- zendframework/zend-mvc: 2.*
- zendframework/zend-servicemanager: 2.*
- zendframework/zend-stdlib: 2.*
Requires (Dev)
- phpunit/phpunit: 4.*
- satooshi/php-coveralls: ~0.6
- squizlabs/php_codesniffer: 2.3.*
- zendframework/zendframework: 2.*
This package is not auto-updated.
Last update: 2024-11-05 04:16:59 UTC
README
Full documentation
This is a Zend Framework 2 module for the PHP Hashids library. See the full documentation of the library at http://hashids.org/php.
Requirements
- PHP 5.3.3 or higher
- Zend Framework 2.1 onwards
(Optional) GNU Multiple Precision or BCMath to allow integers greater than 1,000,000,000 to be encoded. See https://github.com/ivanakimov/hashids.php for more information.
Installation using Composer
composer require damess/zf2-hashids
Add the module to ./config/application.config.php
<?php return array( 'modules' => array( 'Application', 'DaMess\Hashids', ), ... );
Options
The Hashids module has some options to allow you to quickly change the configuration. After installing the module, copy ./vendor/damess/zf2-hashids/config/hashids.global.php.dist to ./config/autoload/hashids.global.php and change the values as required.
- salt - Default value of ''. This is the value used when encoding an ID into a hash. Note: Please do not change this value once it's been set.
- min_length - Default value of 22. This defines the minimum length of the encoded hash value.
- alphabet - Default value of 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890'. The alphabet used when encoding an ID. This must be at least 16 characters long and not contain any spaces.
<?php return array( 'hashids' => array( /* * The salt to use for encryption * NOTE: Do not change this once it's been set */ 'salt' => '', /* * Minimum length of the generated hash */ 'min_length' => 22, /* * Define which characters are used when building the hash */ 'alphabet' => 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890', ), );
Usage
This module provides a HashidsService and a controller plugin, see below for examples of use.
HashidsService
The HashidsService can be retrieved from the ServiceManager.
Inside a factory implementing Zend\ServiceManager\FactoryInterace
<?php $service = $serviceLocator->get('DaMess\Hashids\Service\HashidsService'); $service->encode(1); // 39J4q2VolejRejNmGQBW71 (assuming default config values) $service->decode('39J4q2VolejRejNmGQBW71'); // array(1) (assuming default config values)
Inside a controller or class implementing Zend\ServiceManager\ServiceLocatorAwareInterface that's been retrieved from the ServiceManager
<?php $service = $this->getServiceLocator()->get('DaMess\Hashids\Service\HashidsService'); $service->encode(1); // 39J4q2VolejRejNmGQBW71 (assuming default config values) $service->decode('39J4q2VolejRejNmGQBW71'); // array(1) (assuming default config values)
Controller plugin
The Hashids module provides a hashids controller plugin. This is how it can be used
<?php namespace Application\Controller; use Zend\Mvc\Controller\AbstractActionController; use Zend\View\Model\ViewModel; class IndexController extends AbstractActionController { public function indexAction() { return new ViewModel(array( 'hash' => $this->hashids()->encode(1), // 39J4q2VolejRejNmGQBW71 'id' => $this->hashids()->decode('39J4q2VolejRejNmGQBW71'), // array(1) )); } }