1. Go to this page and download the library: Download netresearch/nr-vault library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
netresearch / nr-vault example snippets
use Netresearch\NrVault\Service\VaultServiceInterface;
class MyService
{
public function __construct(
private readonly VaultServiceInterface $vault,
) {}
public function storeApiKey(string $provider, string $apiKey): void
{
$this->vault->store(
identifier: "my_extension_{$provider}_api_key",
secret: $apiKey,
options: [
'owner' => $GLOBALS['BE_USER']->user['uid'],
'groups' => [1, 2], // Admin, Editor groups
'context' => 'payment', // Permission scoping
'expiresAt' => time() + 86400 * 90, // 90 days
]
);
}
public function getApiKey(string $provider): ?string
{
return $this->vault->retrieve("my_extension_{$provider}_api_key");
}
}
use GuzzleHttp\Psr7\Request;
use Netresearch\NrVault\Http\SecretPlacement;
use Netresearch\NrVault\Http\VaultHttpClientInterface;
class PaymentService
{
public function __construct(
private readonly VaultHttpClientInterface $httpClient,
) {}
public function chargeCustomer(array $payload): array
{
// Configure vault-based authentication (returns a new immutable client)
$client = $this->httpClient->withAuthentication('stripe_api_key', SecretPlacement::Bearer);
// Send a standard PSR-7 request - the secret is injected automatically
$request = new Request(
'POST',
'https://api.stripe.com/v1/charges',
['Content-Type' => 'application/json'],
json_encode($payload),
);
$response = $client->sendRequest($request);
return json_decode($response->getBody()->getContents(), true);
}
}