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

Breadcrumb

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

class Psr17FactoryDiscovery

Finds PSR-17 factories.

@author Tobias Nyholm <tobias.nyholm@gmail.com>

Hierarchy

  • class \Http\Discovery\ClassDiscovery
    • class \Http\Discovery\Psr17FactoryDiscovery extends \Http\Discovery\ClassDiscovery

Expanded class hierarchy of Psr17FactoryDiscovery

5 files declare their use of Psr17FactoryDiscovery
AutoRootSpan.php in vendor/open-telemetry/sdk/Trace/AutoRootSpan.php
Buzz.php in vendor/open-telemetry/sdk/Common/Http/Psr/Client/Discovery/Buzz.php
CommonClassesStrategy.php in vendor/php-http/discovery/src/Strategy/CommonClassesStrategy.php
MessageFactoryResolver.php in vendor/open-telemetry/sdk/Common/Adapter/HttpDiscovery/MessageFactoryResolver.php
PsrTransportFactory.php in vendor/open-telemetry/sdk/Common/Export/Http/PsrTransportFactory.php

File

vendor/php-http/discovery/src/Psr17FactoryDiscovery.php, line 19

Namespace

Http\Discovery
View source
final class Psr17FactoryDiscovery extends ClassDiscovery {
    private static function createException($type, Exception $e) {
        return new RealNotFoundException('No PSR-17 ' . $type . ' found. Install a package from this list: https://packagist.org/providers/psr/http-factory-implementation', 0, $e);
    }
    
    /**
     * @return RequestFactoryInterface
     *
     * @throws RealNotFoundException
     */
    public static function findRequestFactory() {
        try {
            $messageFactory = static::findOneByType(RequestFactoryInterface::class);
        } catch (DiscoveryFailedException $e) {
            throw self::createException('request factory', $e);
        }
        return static::instantiateClass($messageFactory);
    }
    
    /**
     * @return ResponseFactoryInterface
     *
     * @throws RealNotFoundException
     */
    public static function findResponseFactory() {
        try {
            $messageFactory = static::findOneByType(ResponseFactoryInterface::class);
        } catch (DiscoveryFailedException $e) {
            throw self::createException('response factory', $e);
        }
        return static::instantiateClass($messageFactory);
    }
    
    /**
     * @return ServerRequestFactoryInterface
     *
     * @throws RealNotFoundException
     */
    public static function findServerRequestFactory() {
        try {
            $messageFactory = static::findOneByType(ServerRequestFactoryInterface::class);
        } catch (DiscoveryFailedException $e) {
            throw self::createException('server request factory', $e);
        }
        return static::instantiateClass($messageFactory);
    }
    
    /**
     * @return StreamFactoryInterface
     *
     * @throws RealNotFoundException
     */
    public static function findStreamFactory() {
        try {
            $messageFactory = static::findOneByType(StreamFactoryInterface::class);
        } catch (DiscoveryFailedException $e) {
            throw self::createException('stream factory', $e);
        }
        return static::instantiateClass($messageFactory);
    }
    
    /**
     * @return UploadedFileFactoryInterface
     *
     * @throws RealNotFoundException
     */
    public static function findUploadedFileFactory() {
        try {
            $messageFactory = static::findOneByType(UploadedFileFactoryInterface::class);
        } catch (DiscoveryFailedException $e) {
            throw self::createException('uploaded file factory', $e);
        }
        return static::instantiateClass($messageFactory);
    }
    
    /**
     * @return UriFactoryInterface
     *
     * @throws RealNotFoundException
     */
    public static function findUriFactory() {
        try {
            $messageFactory = static::findOneByType(UriFactoryInterface::class);
        } catch (DiscoveryFailedException $e) {
            throw self::createException('url factory', $e);
        }
        return static::instantiateClass($messageFactory);
    }
    
    /**
     * @return UriFactoryInterface
     *
     * @throws RealNotFoundException
     *
     * @deprecated This will be removed in 2.0. Consider using the findUriFactory() method.
     */
    public static function findUrlFactory() {
        return static::findUriFactory();
    }

}

Members

Title Sort descending Deprecated Modifiers Object type Summary
ClassDiscovery::$cache private static property Discovery cache to make the second time we use discovery faster.
ClassDiscovery::$deprecatedStrategies private static property
ClassDiscovery::$strategies private static property A list of strategies to find classes.
ClassDiscovery::appendStrategy public static function Append a strategy at the end of the strategy queue.
ClassDiscovery::clearCache public static function
ClassDiscovery::evaluateCondition protected static function Evaluates conditions to boolean.
ClassDiscovery::findOneByType protected static function Finds a class.
ClassDiscovery::getFromCache private static function Get a value from cache.
ClassDiscovery::getStrategies public static function Returns the currently configured discovery strategies as fully qualified class names.
ClassDiscovery::instantiateClass protected static function Get an instance of the $class.
ClassDiscovery::prependStrategy public static function Prepend a strategy at the beginning of the strategy queue.
ClassDiscovery::safeClassExists public static function We need a &quot;safe&quot; version of PHP&#039;s &quot;class_exists&quot; because Magento has a bug
(or they call it a &quot;feature&quot;). Magento is throwing an exception if you do class_exists()
on a class that ends with &quot;Factory&quot; and if…
ClassDiscovery::setStrategies public static function Set new strategies and clear the cache.
ClassDiscovery::storeInCache private static function Store a value in cache.
Psr17FactoryDiscovery::createException private static function
Psr17FactoryDiscovery::findRequestFactory public static function
Psr17FactoryDiscovery::findResponseFactory public static function
Psr17FactoryDiscovery::findServerRequestFactory public static function
Psr17FactoryDiscovery::findStreamFactory public static function
Psr17FactoryDiscovery::findUploadedFileFactory public static function
Psr17FactoryDiscovery::findUriFactory public static function
Psr17FactoryDiscovery::findUrlFactory Deprecated public static function

API Navigation

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