Skip to main content
Drupal API
User account menu
  • Log in

Breadcrumb

  1. Drupal Core 11.1.x

PsrTransportFactory.php

Namespace

OpenTelemetry\SDK\Common\Export\Http

File

vendor/open-telemetry/sdk/Common/Export/Http/PsrTransportFactory.php

View source
<?php

declare (strict_types=1);
namespace OpenTelemetry\SDK\Common\Export\Http;

use const FILTER_VALIDATE_URL;
use function filter_var;
use Http\Discovery\Psr17FactoryDiscovery;
use Http\Discovery\Psr18ClientDiscovery;
use InvalidArgumentException;
use OpenTelemetry\SDK\Common\Export\TransportFactoryInterface;
use OpenTelemetry\SDK\Common\Http\Psr\Client\Discovery;
use Psr\Http\Client\ClientInterface;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\StreamFactoryInterface;
final class PsrTransportFactory implements TransportFactoryInterface {
    public function __construct(?ClientInterface $client = null, ?RequestFactoryInterface $requestFactory = null, ?StreamFactoryInterface $streamFactory = null) {
    }
    
    /**
     * @phan-suppress PhanTypeMismatchArgumentNullable
     */
    public function create(string $endpoint, string $contentType, array $headers = [], $compression = null, float $timeout = 10.0, int $retryDelay = 100, int $maxRetries = 3, ?string $cacert = null, ?string $cert = null, ?string $key = null) : PsrTransport {
        if (!filter_var($endpoint, FILTER_VALIDATE_URL)) {
            throw new InvalidArgumentException(sprintf('Invalid endpoint url "%s"', $endpoint));
        }
        assert(!empty($endpoint));
        $this->client ??= Discovery::find([
            'timeout' => $timeout,
        ]);
        $this->requestFactory ??= Psr17FactoryDiscovery::findRequestFactory();
        $this->streamFactory ??= Psr17FactoryDiscovery::findStreamFactory();
        return new PsrTransport($this->client, $this->requestFactory, $this->streamFactory, $endpoint, $contentType, $headers, PsrUtils::compression($compression), $retryDelay, $maxRetries);
    }
    
    /**
     * @deprecated
     */
    public static function discover() : self {
        return new self(Psr18ClientDiscovery::find(), Psr17FactoryDiscovery::findRequestFactory(), Psr17FactoryDiscovery::findStreamFactory());
    }

}

Classes

Title Deprecated Summary
PsrTransportFactory

API Navigation

  • Drupal Core 11.1.x
  • Topics
  • Classes
  • Functions
  • Constants
  • Globals
  • Files
  • Namespaces
  • Deprecated
  • Services
RSS feed
Powered by Drupal