使い方
K2HASH PHP Extensionをビルドした後で、動作確認をしてみます。
1. インストール
K2HASH PHP Extensionは、K2HASHを必要とします。
K2HASH のインストールは、K2HASHの使い方 を参照して、事前にインストールしてください。
K2HASH PHP Extension のパッケージは、AntPickax packagecloud.io にあります。
まず、AntPickax packagecloud.io のリポジトリを登録してください。
リポジトリは、こちら の手順に従って簡単に登録できます。
リポジトリの登録が終わったら、K2HASH PHP Extension をインストールしてください。
DebianベースのLinuxユーザは、下の手順でインストールできます。
$ sudo apt-get update -y
$ sudo apt-get install curl -y
$ curl -s https://packagecloud.io/install/repositories/antpickax/stable/script.deb.sh | sudo bash
$ sudo apt-get install -y php8.1 libapache2-mod-php8.1
$ sudo update-alternatives --set php-config /usr/bin/php-config8.1
$ sudo update-alternatives --set php /usr/bin/php8.1
$ sudo apt-get install -y k2hash php-pecl-k2hash
Fedora派生のRPMベースのLinux(Fedora, CentOS, CentOS Stream, RHELなど)ユーザは、下の手順でインストールできます。
$ sudo dnf update -y
$ curl -s https://packagecloud.io/install/repositories/antpickax/stable/script.rpm.sh | sudo bash
$ sudo dnf install https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
$ sudo dnf install https://rpms.remirepo.net/enterprise/remi-release-8.rpm
$ sudo dnf module reset php
$ sudo dnf module install php:remi-8.1
$ sudo dnf install -y php-pecl-k2hash
2. 実行テスト
以下のようなファイルを作成し、ファイル作成、キーと値の書き込み、読み出しができるか確認してみてください。
<?php
$handle = k2hpx_open_mem();
if(!k2hpx_set_value($handle, "test", "value")){
k2hpx_close($handle);
echo "NG";
exit;
}
if(false === ($value = k2hpx_get_value($handle, "test")) || $value != "value"){
k2hpx_close($handle);
echo "NG";
exit;
}
echo "OK";
?>
3. ロード・実行
PHP の説明に従って、K2HASH PHP Extensionをロードして使ってください。
パッケージでK2HASH PHP Extensionをインストールした場合、k2hash.ini
が含まれており、すぐに利用できます。
4. 例
以下にいくつかの K2HASH PHP Extension を使った PHPソースコードの例を示します。
一つ目の例では、値を持ったキーを保存し、それを取得しています。 二つ目の例では、子供のキーを持ったキーを保存し、それを取得しています。
例 1 - K2hashサンプルコード
<?php
// k2hpx_set_debug_level_message();
// set value & get value
$handle = k2hpx_open_mem();
k2hpx_set_value($handle, "test", "value");
$value = k2hpx_get_value($handle, "test");
var_dump($value);
k2hpx_close($handle);
?>
上の例の出力は、 たとえば以下のようになります。
string(5) "value"
例 2 - K2hashサンプルコード
<?php
// set subkeys & get subkeys
$handle = k2hpx_open_mem();
$putsubkeys = array("subkey1", "subkey2", "subkey3");
k2hpx_add_subkeys($handle, "test", $putsubkeys);
$getsubkeys = k2hpx_get_subkeys($handle, "test");
var_dump($getsubkeys);
k2hpx_close($handle);
?>
上の例の出力は、 たとえば以下のようになります。
array(3) {
[0]=>
string(7) "subkey1"
[1]=>
string(7) "subkey2"
[2]=>
string(7) "subkey3"
}