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

Breadcrumb

  1. Drupal Core 11.1.x
  2. Discovery.php

class Discovery

Hierarchy

  • class \OpenTelemetry\SDK\Common\Http\Psr\Client\Discovery

Expanded class hierarchy of Discovery

1 file declares its use of Discovery
PsrTransportFactory.php in vendor/open-telemetry/sdk/Common/Export/Http/PsrTransportFactory.php
1 string reference to 'Discovery'
PluginManagerInspectionRule::isYamlDiscovery in vendor/mglaman/phpstan-drupal/src/Rules/Classes/PluginManagerInspectionRule.php

File

vendor/open-telemetry/sdk/Common/Http/Psr/Client/Discovery.php, line 16

Namespace

OpenTelemetry\SDK\Common\Http\Psr\Client
View source
class Discovery {
    private static ?array $discoverers;
    
    /**
     * @var list<class-string<DiscoveryInterface>>
     */
    private const DEFAULTS = [
        Guzzle::class,
        Symfony::class,
        Buzz::class,
        CurlClient::class,
    ];
    
    /**
     * Attempt discovery of a configurable psr-18 http client, falling back to Psr18ClientDiscovery.
     */
    public static function find(array $options = []) : ClientInterface {
        $options = array_filter($options);
        foreach (self::discoverers() as $clientDiscovery) {
            
            /** @var DiscoveryInterface $clientDiscovery */
            if ($clientDiscovery->available()) {
                return $clientDiscovery->create($options);
            }
        }
        return Psr18ClientDiscovery::find();
    }
    
    /**
     * @internal
     */
    public static function setDiscoverers(array $discoverers) : void {
        self::$discoverers = $discoverers;
    }
    
    /**
     * @internal
     */
    public static function reset() : void {
        self::$discoverers = null;
    }
    private static function discoverers() : Generator {
        foreach (self::$discoverers ?? self::DEFAULTS as $discoverer) {
            if (is_string($discoverer)) {
                (yield new $discoverer());
            }
            else {
                (yield $discoverer);
            }
        }
    }

}

Members

Title Sort descending Modifiers Object type Summary
Discovery::$discoverers private static property
Discovery::DEFAULTS private constant
Discovery::discoverers private static function
Discovery::find public static function Attempt discovery of a configurable psr-18 http client, falling back to Psr18ClientDiscovery.
Discovery::reset public static function @internal
Discovery::setDiscoverers public static function @internal

API Navigation

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