php ライブラリ「hashids」を使ってユニークなIDを生成する

  • 作成日 2020.07.12
  • 更新日 2020.07.17
  • php
php ライブラリ「hashids」を使ってユニークなIDを生成する

phpでライブラリ「hashids」を使ってユニークなIDを生成するまでのサンプルコードを記述してます。composerを使用して「hashids」はインストールしてます。

環境

  • OS windows10 pro 64bit
  • Apache 2.4.43
  • PHP 7.4.5
  • Composer 1.10.5

※windows10にApacheのインストールはこちら
※windows10にphpのインストールはこちら
※Windows10にComposerのインストールはこちら

hashids/hashidsインストール

phpが動作しているフォルダで、composerを使用してインストールします。
※ここではデバック関数「dd」を利用してます。導入手順はこちら

composer require hashids/hashids

<出力結果>
Using version ^4.0 for hashids/hashids
./composer.json has been updated
Loading composer repositories with package information
Updating dependencies (including require-dev)
Package operations: 1 install, 0 updates, 0 removals
  - Installing hashids/hashids (4.0.0): Downloading (100%)
hashids/hashids suggests installing ext-gmp (Required to use GNU multiple precision mathematics (*).)
Package mschop/noteephp is abandoned, you should avoid using it. Use mschop/notee instead.
Writing lock file
Generating autoload files
19 packages you are using are looking for funding.
Use the `composer fund` command to find out more!

自分の場合は、下記にインストールしました。

hashids/hashids利用

「C:\Apache24\htdocs」に「test.php」を下記のコードで作成します。

<?php
//エラーを表示する
ini_set('display_errors', "On");

require_once __DIR__ . '/vendor/autoload.php';
use Hashids\Hashids;

//任意の文字列を入力
$salt = "FDPVKDSKBOSPERA";

// 文字数を指定。
$hashids = new Hashids($salt, 10);

// 10文字のユニーク文字列が生成される
$id = 1000;
$hashid = $hashids->encode($id);
echo "生成されたIDは「" . $hashid . "」です<br>";

// デコードも可能です
$decodeId = $hashids->decode($hashid);
dd($decodeId); 

実行結果を確認すると、10桁のユニークなIDが生成されていることが確認できます。