PHP SDK middleware

Elevate, May 20-22-2025, Miami Beach, Florida

Add functionality to requests and responses in the PHP SDK.

You can add middleware when creating the PHP SDK client. When adding multiple middleware, use an array of middlewares.

MiddlewareFactory

The scope of this Factory pattern is to handle and customize the available middleware. Use the methods contained in this class to create an array of middlewares.

Default middleware

$authConfig = new ClientCredentialsConfig(new ClientCredentials($clientId, $clientSecret), [
            'handler' => $authHandler,
        ]);
$oauthHandler = OAuthHandlerFactory::ofAuthConfig($authConfig),
$logger = new Logger('client', [new StreamHandler('./logs/requests.log')]);
$maxRetries = 3;
$correlationIdProvider = new DefaultCorrelationIdProvider();

$middlewares = MiddlewareFactory::createDefaultMiddlewares(
    $oauthHandler,
    $logger,
    $maxRetries,
    $correlationIdProvider
);

CorrelationIdMiddleware

$correlationIdProvider = new DefaultCorrelationIdProvider();

$correlationIdMiddleware = MiddlewareFactory::createCorrelationIdMiddleware(
  $correlationIdProvider
);

RetryNAMiddleware

$maxRetries = 3;

$retryMiddleware = MiddlewareFactory::createRetryNAMiddleware($maxRetries);

OAuthHandlerMiddleware

$tokenProvider = new YourTokenProvider();
$oauthHandler = OAuthHandlerFactory::ofProvider($tokenProvider),

$oauthMiddleware = MiddlewareFactory::createMiddlewareForOAuthHandler($oauthHandler);

LoggerMiddleware

$logger = new Logger('auth');
$logger->pushHandler(new StreamHandler('./logs/requests.log', Logger::DEBUG));

$loggerMiddleware = MiddlewareFactory::createLoggerMiddleware($logger);

ReauthenticateMiddleware

createReauthenticateMiddleware creates a middleware that automatically reauthenticates HTTP requests in the event of an invalid token error (HTTP 401). It uses an OAuth2Handler to refresh the token and retry the request up to a specified number of times.
$maxRetries = 3;

$authConfig = new ClientCredentialsConfig(new ClientCredentials($clientId, $clientSecret), [
            'handler' => $authHandler,
        ]);
$oauthHandler = OAuthHandlerFactory::ofAuthConfig($authConfig),
//$maxRetries is optional. If not specified, a default value of 1 is used
$reauthMiddleware = MiddlewareFactory::createReauthenticateMiddleware($oauthHandler, $maxRetries);