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