PHP code example of treblle / treblle-php

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

    

treblle / treblle-php example snippets




reblle\Php\Treblle;

Treblle::create(
    sdkToken: 'your-sdk-token-from-treblle-dashboard',
    apiKey:   'your-api-key-from-treblle-dashboard',
);

// Your application code continues here...

use Treblle\Php\Treblle;

Treblle::create(
    sdkToken: $_ENV['TREBLLE_SDK_TOKEN'],
    apiKey:   $_ENV['TREBLLE_API_KEY'],
    options: [
        'debug'           => false,
        'enabled'         => true,
        'masked_keywords' => [
            'password', 'pwd', 'secret', 'password_confirmation',
            'passwordConfirmation', 'cc', 'card_number', 'cardNumber',
            'ccv', 'ssn', 'credit_score', 'creditScore',
        ],
        'excluded_paths'  => [],
        'custom_ingress'  => null,
    ],
);

use Treblle\Php\Config\TreblleConfig;
use Treblle\Php\Treblle;

$config = new TreblleConfig(
    sdkToken:        $_ENV['TREBLLE_SDK_TOKEN'],
    apiKey:          $_ENV['TREBLLE_API_KEY'],
    debug:           false,
    maskedKeywords:  TreblleConfig::DEFAULT_MASKED_KEYWORDS,
    excludedPaths:   [],
    customIngress:   null,
    enabled:         true,
);

Treblle::start($config);

use Treblle\Php\Treblle;

Treblle::create(
    sdkToken: $_ENV['TREBLLE_SDK_TOKEN'],
    apiKey:   $_ENV['TREBLLE_API_KEY'],
    options: [
        'enabled' => $_ENV['APP_ENV'] === 'production',
    ],
);

'debug' => true,

use Treblle\Php\Config\TreblleConfig;

// Extend the defaults
'masked_keywords' => array_merge(
    TreblleConfig::DEFAULT_MASKED_KEYWORDS,
    ['access_token', 'refresh_token', 'api_secret'],
),

// Disable masking entirely
'masked_keywords' => [],

'excluded_paths' => [
    '/health',          // exact match
    '/uptime',          // exact match
    '/status',          // exact match
    'admin/*',          // wildcard: matches /admin/users, /admin/settings, etc.
    '/^\/debug\//i',    // regex: matches any path starting with /debug/
],

'/health'   // matches /health only

'admin/*'   // matches admin/users, admin/settings/edit, etc.
'api/v?/*'  // matches api/v1/anything, api/v2/anything, etc.

'/^\/api\/v\d+\/internal/'   // matches /api/v1/internal, /api/v2/internal, etc.

'custom_ingress' => 'https://ingress-eu.treblle.com',

use Treblle\Php\Treblle;

Treblle::setRoutePath('articles/{id}');

$dispatcher = FastRoute\simpleDispatcher(function (FastRoute\RouteCollector $r) {
    $r->addRoute('GET', '/v1/articles/{id:\d+}', 'ArticleHandler');
});

[$status, $handler, $vars] = $dispatcher->dispatch($method, $path);

if ($status === FastRoute\Dispatcher::FOUND) {
    Treblle::setRoutePath('/v1/articles/{id}');
}

$_SERVER['TREBLLE_ROUTE_PATH'] = 'articles/{id}';

use Treblle\Php\Treblle;

Treblle::metadata([
    'user-id' => '[email protected]',
    'tenant' => 'acme-corp',
    'plan' => 'enterprise',
]);

// In an auth middleware
Treblle::metadata(['user-id' => $user->id, 'role' => $user->role]);

// Later, in a controller
Treblle::metadata(['feature_flag' => 'new-checkout']);

use Treblle\Php\Middleware\TreblleMiddleware;

$middleware = TreblleMiddleware::create(
    sdkToken: $_ENV['TREBLLE_SDK_TOKEN'],
    apiKey:   $_ENV['TREBLLE_API_KEY'],
);

// Slim 4
$app->add($middleware);

// Mezzio / Laminas
$app->pipe($middleware);

$middleware = TreblleMiddleware::create(
    sdkToken: $_ENV['TREBLLE_SDK_TOKEN'],
    apiKey:   $_ENV['TREBLLE_API_KEY'],
    options: [
        'enabled'         => $_ENV['APP_ENV'] === 'production',
        'masked_keywords' => array_merge(TreblleConfig::DEFAULT_MASKED_KEYWORDS, ['access_token']),
        'excluded_paths'  => ['/health', '/metrics'],
    ],
);

use Treblle\Php\Config\TreblleConfig;
use Treblle\Php\Middleware\TreblleMiddleware;

$middleware = new TreblleMiddleware(new TreblleConfig(
    sdkToken: $_ENV['TREBLLE_SDK_TOKEN'],
    apiKey:   $_ENV['TREBLLE_API_KEY'],
));

$request = $request->withAttribute('_treblle_route_path', 'articles/{id}');

public function handle(ServerRequestInterface $request): ResponseInterface
{
    $user = $this->auth->authenticate($request);
    Treblle::metadata(['user_id' => $user->id, 'plan' => $user->plan]);

    // ... handle request ...
}

use Treblle\Php\Factory\TreblleFactory;

TreblleFactory::create(
    apiKey:   'your-api-key',
    sdkToken: 'your-sdk-token',
);

use Treblle\Php\Treblle;

Treblle::create(
    sdkToken: 'your-sdk-token',
    apiKey:   'your-api-key',
);

// Before (v5)
use Treblle\Php\Factory\TreblleFactory;

TreblleFactory::create(
    apiKey:          'your-api-key',
    sdkToken:        'your-sdk-token',
    debug:           false,
    maskedFields:    ['access_token', 'refresh_token'],
    excludedHeaders: ['X-Internal-Header'],
    config: [
        'url'          => 'https://ingress-eu.treblle.com',
        'fork_process' => true,
    ],
);

// After (v6)
use Treblle\Php\Treblle;

Treblle::create(
    sdkToken: 'your-sdk-token',
    apiKey:   'your-api-key',
    options: [
        'debug'           => false,
        'masked_keywords' => ['password', 'pwd', 'secret', 'access_token', 'refresh_token'],
        'custom_ingress'  => 'https://ingress-eu.treblle.com',
    ],
);

use Treblle\Php\Config\TreblleConfig;
use Treblle\Php\Treblle;

Treblle::create(
    sdkToken: 'your-sdk-token',
    apiKey:   'your-api-key',
    options: [
        'masked_keywords' => array_merge(
            TreblleConfig::DEFAULT_MASKED_KEYWORDS,
            ['access_token', 'refresh_token'],
        ),
    ],
);
bash
composer 
bash
composer