PHP 8.2.30
Preview: Psr17FactoryDiscovery.php Size: 3.77 KB
/home/byroehnu/easetack.com/vendor/php-http/discovery/src/Psr17FactoryDiscovery.php

<?php

namespace Http\Discovery;

use Http\Discovery\Exception\DiscoveryFailedException;
use Http\Discovery\Exception\NotFoundException as RealNotFoundException;
use Psr\Http\Message\RequestFactoryInterface;
use Psr\Http\Message\ResponseFactoryInterface;
use Psr\Http\Message\ServerRequestFactoryInterface;
use Psr\Http\Message\StreamFactoryInterface;
use Psr\Http\Message\UploadedFileFactoryInterface;
use Psr\Http\Message\UriFactoryInterface;

/**
 * Finds PSR-17 factories.
 *
 * @author Tobias Nyholm <tobias.nyholm@gmail.com>
 */
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();
    }
}

Directory Contents

Dirs: 3 × Files: 12

Name Size Perms Modified Actions
Composer DIR
- drwxrwxrwx 2025-05-16 16:14:47
Edit Download
Exception DIR
- drwxrwxrwx 2025-05-16 16:14:47
Edit Download
Strategy DIR
- drwxrwxrwx 2025-05-16 16:14:47
Edit Download
6.81 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
204 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
869 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
904 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
1.08 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
430 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
11.37 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
3.77 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
2.17 KB lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
916 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
960 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download
902 B lrw-rw-rw- 2024-10-02 11:20:13
Edit Download

If ZipArchive is unavailable, a .tar will be created (no compression).