PHPでMomento Cacheを始める
PHPとMomento Cacheをすぐに使い始める必要がある場合、このページには必要な基本的なAPIコールが含まれています。
詳しくは、GitHubのPHP SDKもご覧ください。
前提条件
- Momento API Keyが必要です。Momentoコンソールを使って生成できます。
- PHP 8.0以上のインストール
- gRPC PHP 拡張 のインストール
- protobuf C拡張のインストール
- Composerのインストール - PHP用の共通ライブラリと依存性マネージャ
PHP SDKを取得するためにcomposerを設定する
composer.json
ファイルに当社のリポジトリを追加し、依存関係として当社のSDKを追加します:
{
"require": {
"momentohq/client-sdk-php": "1.11.1"
}
}
composer update
を実行して、必要な前提条件をインストールする。
ライブラリをインポートして接続し、CacheClient オブジェクトを返します。
このコードはサンプルファイルをセットアップする。
<?php
declare(strict_types=1);
require "vendor/autoload.php";
use Momento\Auth\CredentialProvider;
use Momento\Cache\CacheClient;
use Momento\Config\Configurations\Laptop;
use Momento\Logging\StderrLoggerFactory;
use Psr\Log\LoggerInterface;
$CACHE_NAME = uniqid("php-example-");
$ITEM_DEFAULT_TTL_SECONDS = 60;
$KEY = "MyKey";
$VALUE = "MyValue";
// Setup
$authProvider = CredentialProvider::fromEnvironmentVariable("MOMENTO_API_KEY");
$configuration = Laptop::latest(new StderrLoggerFactory());
$client = new CacheClient($configuration, $authProvider, $ITEM_DEFAULT_TTL_SECONDS);
$logger = $configuration->getLoggerFactory()->getLogger("ex:");
function printBanner(string $message, LoggerInterface $logger): void
{
$line = "******************************************************************";
$logger->info($line);
$logger->info($message);
$logger->info($line);
}
printBanner("* Momento Example Start *", $logger);
Momento Cacheに新しいキャッシュを作成する。
この関数は、Momentoアカウントに新しいキャッシュを作成します。
$response = $client->createCache($CACHE_NAME);
if ($response->asSuccess()) {
$logger->info("Created cache " . $CACHE_NAME . "\n");
} elseif ($response->asError()) {
$logger->info("Error creating cache: " . $response->asError()->message() . "\n");
exit;
} elseif ($response->asAlreadyExists()) {
$logger->info("Cache " . $CACHE_NAME . " already exists.\n");
}
アカウントに存在するキャッシュのリストを取得する
この例では、上記の CacheClient 関数を使用して、Momento アカウントのすべてのキャッシュを一覧表示し、エラーがあればトラップします。
// List cache
$response = $client->listCaches();
if ($response->asSuccess()) {
$logger->info("SUCCESS: List caches: \n");
foreach ($response->asSuccess()->caches() as $cache) {
$cacheName = $cache->name();
$logger->info("$cacheName\n");
}
$logger->info("\n");
} elseif ($response->asError()) {
$logger->info("Error listing cache: " . $response->asError()->message() . "\n");
exit;
}
キャッシュに項目を書き込む
セット操作の簡単な例。client.set呼び出しでは、TTLはオプションです。TTLを渡すと、クライアント接続オブジェクトで設定されたデフォルトのTTL値が上書きされます。
// Set
$logger->info("Setting key: $KEY to value: $VALUE\n");
$response = $client->set($CACHE_NAME, $KEY, $VALUE);
if ($response->asSuccess()) {
$logger->info("SUCCESS: - Set key: " . $KEY . " value: " . $VALUE . " cache: " . $CACHE_NAME . "\n");
} elseif ($response->asError()) {
$logger->info("Error setting key: " . $response->asError()->message() . "\n");
exit;
}