メインコンテンツまでスキップ

PHPでMomentoストレージを始める

PHPとMomento Storageをすぐに使い始める必要がある場合、このページには必要な基本的なAPIコールが含まれています。

詳しくは、GitHubのPHP SDKもご覧ください。

前提条件

PHP SDKを取得するためにcomposerを設定する

composer.jsonファイルに当社のリポジトリを追加し、依存関係として当社のSDKを追加する:

{
"require": {
"momentohq/client-sdk-php": "1.11.1"
}
}

composer update を実行して、必要な前提条件をインストールします。

ライブラリをインポートして接続し、StorageClientオブジェクトを返す

このコードは必要なインポートを取り込み、StorageClientをインスタンス化します。

<?php
require "vendor/autoload.php";
use Momento\Auth\CredentialProvider;
use Momento\Config\Configurations\Storage\Laptop;
use Momento\Storage\PreviewStorageClient;

$storageClient = new PreviewStorageClient(
Laptop::latest(),
CredentialProvider::fromEnvironmentVariable("MOMENTO_API_KEY")
);

Momento Storageに新しいストアを作成する

この機能を使用して、アカウントに新しいストアを作成します。


$create_store_response = $storage_client->createStore($store_name);
if ($create_store_response->asSuccess()) {
print("Store $store_name created\n");
} elseif ($create_store_response->asAlreadyExists()) {
print("Store $store_name already exists\n");
} elseif ($err = $create_store_response->asError()) {
print("An error occurred while attempting to create $store_name: {$err->errorCode()} - {$err->message()}\n");
}

あなたのアカウントにある既存のストアをリストアップする

アカウントのストアの単純なリスト。


$list_stores_response = $storage_client->listStores();
if ($listSuccess = $list_stores_response->asSuccess()) {
print("Found stores:\n");
foreach ($listSuccess->stores() as $store) {
$store_name = $store->name();
print("- $store_name\n");
}
} elseif ($err = $list_stores_response->asError()) {
print("An error occurred while attempting to list stores: {$err->errorCode()} - {$err->message()}\n");
}

ストアに商品を書き込む

Put操作の簡単な例。


$put_response = $storage_client->putString($store_name, "test-key", "test-value");
if ($put_response->asSuccess()) {
print("Key 'test-key' stored successfully\n");
} elseif ($err = $put_response->asError()) {
print("An error occurred while attempting to store 'test-key': {$err->errorCode()} - {$err->message()}\n");
}

// Momento storage also supports int, float, and bytes types.
// Because strings in PHP are a series of bytes, the putBytes method accepts a string as the value.
$put_response = $storage_client->putBytes($store_name, "test-key", "test-value");
$put_response = $storage_client->putInt($store_name, "test-key", 42);
$put_response = $storage_client->putFloat($store_name, "test-key", 3.14);

ストアの商品を読む

これは、ストアから項目を取得する単純な読み取り操作の例です。


$get_response = $storage_client->get($store_name, "test-key");
if ($found = $get_response->asFound()) {
$value_type = $found->type();
if ($value_type == StorageValueType::STRING) {
print("Got string value: " . $found->valueString() . "\n");
} elseif ($value_type == StorageValueType::INT) {
print("Got integer value: " . $found->valueInt() . "\n");
} elseif ($value_type == StorageValueType::FLOAT) {
print("Got float value: " . $found->valueFloat() . "\n");
} elseif ($value_type == StorageValueType::BYTES) {
// This case is not expected in this example as PHP doesn't have a native byte type
print("Got bytes value: " . $found->valueBytes() . "\n");
}
// You may also pull the value directly from the response without type checking
print("Retrieved value for key 'test-key': {$get_response->value()}\n");
} elseif ($get_response->asNotFound()) {
print("Key 'test-key' was not found in store $store_name\n");
} elseif ($err = $get_response->asError()) {
print("An error occurred while attempting to get key 'test-key' from store $store_name: {$err->errorCode()} - {$err->message()}\n");
}

ストアからアイテムを削除する

これは、ストアからアイテムを削除する単純な削除操作の例です。


$delete_response = $storage_client->delete($store_name, "test-key");
if ($delete_response->asSuccess()) {
print("Key 'test-key' deleted successfully\n");
} elseif ($err = $delete_response->asError()) {
print("An error occurred while attempting to delete key 'test-key' from store $store_name: {$err->errorCode()} - {$err->message()}\n");
}

コードの実行

PHP SDK GitHub リポジトリの examples ディレクトリ に完全なサンプルがあります。

備考

これらの基本的なAPIコール以外のMomento APIコールの詳細については、APIリファレンスページをチェックしてください。