Вход Регистрация
Файл: vendor/rmccue/requests/src/Autoload.php
Строк: 240
<?php
/**
 * Autoloader for Requests for PHP.
 *
 * Include this file if you'd like to avoid having to create your own autoloader.
 *
 * @package Requests
 * @since   2.0.0
 *
 * @codeCoverageIgnore
 */

namespace WpOrgRequests;

/*
 * Ensure the autoloader is only declared once.
 * This safeguard is in place as this is the typical entry point for this library
 * and this file being required unconditionally could easily cause
 * fatal "Class already declared" errors.
 */
if (class_exists('WpOrgRequestsAutoload') === false) {

    
/**
     * Autoloader for Requests for PHP.
     *
     * This autoloader supports the PSR-4 based Requests 2.0.0 classes in a case-sensitive manner
     * as the most common server OS-es are case-sensitive and the file names are in mixed case.
     *
     * For the PSR-0 Requests 1.x BC-layer, requested classes will be treated case-insensitively.
     *
     * @package Requests
     */
    
final class Autoload {

        
/**
         * List of the old PSR-0 class names in lowercase as keys with their PSR-4 case-sensitive name as a value.
         *
         * @var array
         */
        
private static $deprecated_classes = [
            
// Interfaces.
            
'requests_auth'                              => 'WpOrgRequestsAuth',
            
'requests_hooker'                            => 'WpOrgRequestsHookManager',
            
'requests_proxy'                             => 'WpOrgRequestsProxy',
            
'requests_transport'                         => 'WpOrgRequestsTransport',

            
// Classes.
            
'requests_cookie'                            => 'WpOrgRequestsCookie',
            
'requests_exception'                         => 'WpOrgRequestsException',
            
'requests_hooks'                             => 'WpOrgRequestsHooks',
            
'requests_idnaencoder'                       => 'WpOrgRequestsIdnaEncoder',
            
'requests_ipv6'                              => 'WpOrgRequestsIpv6',
            
'requests_iri'                               => 'WpOrgRequestsIri',
            
'requests_response'                          => 'WpOrgRequestsResponse',
            
'requests_session'                           => 'WpOrgRequestsSession',
            
'requests_ssl'                               => 'WpOrgRequestsSsl',
            
'requests_auth_basic'                        => 'WpOrgRequestsAuthBasic',
            
'requests_cookie_jar'                        => 'WpOrgRequestsCookieJar',
            
'requests_proxy_http'                        => 'WpOrgRequestsProxyHttp',
            
'requests_response_headers'                  => 'WpOrgRequestsResponseHeaders',
            
'requests_transport_curl'                    => 'WpOrgRequestsTransportCurl',
            
'requests_transport_fsockopen'               => 'WpOrgRequestsTransportFsockopen',
            
'requests_utility_caseinsensitivedictionary' => 'WpOrgRequestsUtilityCaseInsensitiveDictionary',
            
'requests_utility_filterediterator'          => 'WpOrgRequestsUtilityFilteredIterator',
            
'requests_exception_http'                    => 'WpOrgRequestsExceptionHttp',
            
'requests_exception_transport'               => 'WpOrgRequestsExceptionTransport',
            
'requests_exception_transport_curl'          => 'WpOrgRequestsExceptionTransportCurl',
            
'requests_exception_http_304'                => 'WpOrgRequestsExceptionHttpStatus304',
            
'requests_exception_http_305'                => 'WpOrgRequestsExceptionHttpStatus305',
            
'requests_exception_http_306'                => 'WpOrgRequestsExceptionHttpStatus306',
            
'requests_exception_http_400'                => 'WpOrgRequestsExceptionHttpStatus400',
            
'requests_exception_http_401'                => 'WpOrgRequestsExceptionHttpStatus401',
            
'requests_exception_http_402'                => 'WpOrgRequestsExceptionHttpStatus402',
            
'requests_exception_http_403'                => 'WpOrgRequestsExceptionHttpStatus403',
            
'requests_exception_http_404'                => 'WpOrgRequestsExceptionHttpStatus404',
            
'requests_exception_http_405'                => 'WpOrgRequestsExceptionHttpStatus405',
            
'requests_exception_http_406'                => 'WpOrgRequestsExceptionHttpStatus406',
            
'requests_exception_http_407'                => 'WpOrgRequestsExceptionHttpStatus407',
            
'requests_exception_http_408'                => 'WpOrgRequestsExceptionHttpStatus408',
            
'requests_exception_http_409'                => 'WpOrgRequestsExceptionHttpStatus409',
            
'requests_exception_http_410'                => 'WpOrgRequestsExceptionHttpStatus410',
            
'requests_exception_http_411'                => 'WpOrgRequestsExceptionHttpStatus411',
            
'requests_exception_http_412'                => 'WpOrgRequestsExceptionHttpStatus412',
            
'requests_exception_http_413'                => 'WpOrgRequestsExceptionHttpStatus413',
            
'requests_exception_http_414'                => 'WpOrgRequestsExceptionHttpStatus414',
            
'requests_exception_http_415'                => 'WpOrgRequestsExceptionHttpStatus415',
            
'requests_exception_http_416'                => 'WpOrgRequestsExceptionHttpStatus416',
            
'requests_exception_http_417'                => 'WpOrgRequestsExceptionHttpStatus417',
            
'requests_exception_http_418'                => 'WpOrgRequestsExceptionHttpStatus418',
            
'requests_exception_http_428'                => 'WpOrgRequestsExceptionHttpStatus428',
            
'requests_exception_http_429'                => 'WpOrgRequestsExceptionHttpStatus429',
            
'requests_exception_http_431'                => 'WpOrgRequestsExceptionHttpStatus431',
            
'requests_exception_http_500'                => 'WpOrgRequestsExceptionHttpStatus500',
            
'requests_exception_http_501'                => 'WpOrgRequestsExceptionHttpStatus501',
            
'requests_exception_http_502'                => 'WpOrgRequestsExceptionHttpStatus502',
            
'requests_exception_http_503'                => 'WpOrgRequestsExceptionHttpStatus503',
            
'requests_exception_http_504'                => 'WpOrgRequestsExceptionHttpStatus504',
            
'requests_exception_http_505'                => 'WpOrgRequestsExceptionHttpStatus505',
            
'requests_exception_http_511'                => 'WpOrgRequestsExceptionHttpStatus511',
            
'requests_exception_http_unknown'            => 'WpOrgRequestsExceptionHttpStatusUnknown',
        ];

        
/**
         * Register the autoloader.
         *
         * Note: the autoloader is *prepended* in the autoload queue.
         * This is done to ensure that the Requests 2.0 autoloader takes precedence
         * over a potentially (dependency-registered) Requests 1.x autoloader.
         *
         * @internal This method contains a safeguard against the autoloader being
         * registered multiple times. This safeguard uses a global constant to
         * (hopefully/in most cases) still function correctly, even if the
         * class would be renamed.
         *
         * @return void
         */
        
public static function register() {
            if (
defined('REQUESTS_AUTOLOAD_REGISTERED') === false) {
                
spl_autoload_register([self::class, 'load'], true);
                
define('REQUESTS_AUTOLOAD_REGISTERED'true);
            }
        }

        
/**
         * Autoloader.
         *
         * @param string $class_name Name of the class name to load.
         *
         * @return bool Whether a class was loaded or not.
         */
        
public static function load($class_name) {
            
// Check that the class starts with "Requests" (PSR-0) or "WpOrgRequests" (PSR-4).
            
$psr_4_prefix_pos strpos($class_name'WpOrg\Requests\');

            if (stripos($class_name, '
Requests') !== 0 && $psr_4_prefix_pos !== 0) {
                return false;
            }

            $class_lower = strtolower($class_name);

            if ($class_lower === '
requests') {
                // Reference to the original PSR-0 Requests class.
                $file = dirname(__DIR__) . '
/library/Requests.php';
            } elseif ($psr_4_prefix_pos === 0) {
                // PSR-4 classname.
                $file = __DIR__ . '
/' . strtr(substr($class_name, 15), '\', '/') . '.php';
            }

            if (isset($file) && file_exists($file)) {
                include $file;
                return true;
            }

            /*
             * Okay, so the class starts with "Requests", but we couldn'
t find the file.
             * If 
this is one of the deprecated/renamed PSR-0 classes being requested,
             * 
let's alias it to the new name and throw a deprecation notice.
             */
            if (isset(self::$deprecated_classes[$class_lower])) {
                /*
                 * Integrators who cannot yet upgrade to the PSR-4 class names can silence deprecations
                 * by defining a `REQUESTS_SILENCE_PSR0_DEPRECATIONS` constant and setting it to `true`.
                 * The constant needs to be defined before the first deprecated class is requested
                 * via this autoloader.
                 */
                if (!defined('
REQUESTS_SILENCE_PSR0_DEPRECATIONS') || REQUESTS_SILENCE_PSR0_DEPRECATIONS !== true) {
                    // phpcs:ignore WordPress.PHP.DevelopmentFunctions.error_log_trigger_error
                    trigger_error(
                        '
The PSR-`Requests_...` class names in the Request library are deprecated.'
                        . ' 
Switch to the PSR-`WpOrgRequests...` class names at your earliest convenience.',
                        E_USER_DEPRECATED
                    );

                    // Prevent the deprecation notice from being thrown twice.
                    if (!defined('
REQUESTS_SILENCE_PSR0_DEPRECATIONS')) {
                        define('
REQUESTS_SILENCE_PSR0_DEPRECATIONS', true);
                    }
                }

                // Create an alias and let the autoloader recursively kick in to load the PSR-4 class.
                return class_alias(self::$deprecated_classes[$class_lower], $class_name, true);
            }

            return false;
        }
    }
}
Онлайн: 0
Реклама