PHP code example of gause / laravel-keyring

1. Go to this page and download the library: Download gause/laravel-keyring 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/ */

    

gause / laravel-keyring example snippets


use Keyring\Facades\Keyring;

// Via facade
$secret = Keyring::get('STRIPE_SECRET');

// Via helper
$secret = keyring('STRIPE_SECRET');
$secret = keyring('STRIPE_SECRET', 'fallback-value');

// Via dependency injection
public function __construct(KeyringManager $keyring)
{
    $secret = $keyring->get('STRIPE_SECRET');
}

// config/keyring.php
'default' => 'keychain',

'default' => 'secret-service',

'default' => 'wincred',

'default' => 'env',

'drivers' => [
    'env' => [
        'path' => base_path('.env.secrets'),
    ],
],

'default' => 'json',

'drivers' => [
    'json' => [
        'path' => storage_path('.keyring'),
        'encrypt' => true, // set to false for plain JSON
    ],
],

// config/keyring.php
'inject_into_env' => true,

// config/keyring.php

// Disable injection entirely
'inject_into_env' => false,

// Only inject specific keys
'inject_keys' => [
    'STRIPE_SECRET',
    'DB_PASSWORD',
    'REDIS_PASSWORD',
],

'inject_keys' => [
    'STRIPE_SECRET',
    'DB_PASSWORD',
],

// config/keyring.php
'cache' => [
    'enabled' => env('KEYRING_CACHE', false),
    'driver'  => env('KEYRING_CACHE_DRIVER', 'apcu'), // apcu, array
    'ttl'     => (int) env('KEYRING_CACHE_TTL', 3600), // seconds
],

use Keyring\Facades\Keyring;
use Keyring\Contracts\Driver;

// In a service provider boot() method
Keyring::extend('vault', function ($app) {
    return new HashiCorpVaultDriver(
        url: config('keyring.drivers.vault.url'),
        token: config('keyring.drivers.vault.token'),
    );
});

use Keyring\Contracts\Driver;

class HashiCorpVaultDriver implements Driver
{
    public function get(string $key): ?string { /* ... */ }
    public function set(string $key, string $value): void { /* ... */ }
    public function forget(string $key): void { /* ... */ }
    public function has(string $key): bool { /* ... */ }
    public function all(): array { /* ... */ }
}

Keyring::driver('vault')->get('DATABASE_URL');

return [
    // Driver: auto, keychain, secret-service, wincred, env, json
    'default' => env('KEYRING_DRIVER', 'auto'),

    // Namespace prefix for secrets
    'namespace' => env('KEYRING_NAMESPACE', env('APP_NAME', 'Laravel')),

    // Throw exception on missing keys
    'strict' => env('KEYRING_STRICT', false),

    // Inject secrets into $_ENV at boot
    'inject_into_env' => env('KEYRING_INJECT', true),

    // Specific keys to inject (empty = all)
    'inject_keys' => [],

    // Cache resolved secrets in RAM (opt-in, 
bash
php artisan vendor:publish --tag=keyring-config
bash
php artisan keyring:set STRIPE_SECRET sk_test_abc123
bash
php artisan keyring:list
bash
php artisan keyring:set DB_PASSWORD your-db-password
php artisan keyring:set REDIS_PASSWORD your-redis-password
bash
# Stop the root-owned PHP service
sudo brew services stop php

# Start PHP under your user (no sudo!)
brew services start php

# Restart Valet
valet restart
bash
php artisan keyring:get STRIPE_SECRET
php artisan keyring:get STRIPE_SECRET --driver=json
bash
php artisan keyring:set API_KEY
php artisan keyring:set API_KEY sk_test_abc123
php artisan keyring:set API_KEY sk_test_abc123 --driver=json
bash
php artisan keyring:forget OLD_API_KEY
bash
php artisan keyring:list
php artisan keyring:list --driver=env
bash
# 1. Install Homebrew PHP (needed for pecl/phpize)
brew install php

# 2. Compile APCu
pecl install apcu

# 3. Add to Herd's php.ini (adjust version number to match yours)
echo "extension=/opt/homebrew/Cellar/php/$(php -r 'echo PHP_VERSION;')/pecl/$(php -r 'echo PHP_ZEND_VERSION;')/apcu.so" \
  >> ~/Library/Application\ Support/Herd/config/php/85/php.ini

# 4. Restart Herd, then verify
php -m | grep apcu