uawdijnntqw1x1x1
IP : 216.73.216.84
Hostname : webm003.cluster107.gra.hosting.ovh.net
Kernel : Linux webm003.cluster107.gra.hosting.ovh.net 5.15.167-ovh-vps-grsec-zfs-classid #1 SMP Tue Sep 17 08:14:20 UTC 2024 x86_64
Disable Function : _dyuweyrj4,_dyuweyrj4r,dl
OS : Linux
PATH:
/
home
/
opticamezl
/
www
/
newok
/
cli
/
..
/
language
/
..
/
.
/
libraries
/
src
/
Http
/
HttpFactory.php
/
/
<?php /** * Joomla! Content Management System * * @copyright (C) 2012 Open Source Matters, Inc. <https://www.joomla.org> * @license GNU General Public License version 2 or later; see LICENSE.txt */ namespace Joomla\CMS\Http; use Joomla\CMS\Version; use Joomla\Http\TransportInterface; // phpcs:disable PSR1.Files.SideEffects \defined('JPATH_PLATFORM') or die; // phpcs:enable PSR1.Files.SideEffects /** * HTTP factory class. * * @since 3.0.0 */ class HttpFactory { /** * Method to create a JHttp instance. * * @param array|\ArrayAccess $options Client options array. * @param array|string $adapters Adapter (string) or queue of adapters (array) to use for communication. * * @return Http * * @since 3.0.0 * @throws \RuntimeException */ public static function getHttp($options = [], $adapters = null) { if (!\is_array($options) && !($options instanceof \ArrayAccess)) { throw new \InvalidArgumentException( 'The options param must be an array or implement the ArrayAccess interface.' ); } // Set default userAgent if nothing else is set if (!isset($options['userAgent'])) { $version = new Version(); $options['userAgent'] = $version->getUserAgent('Joomla', true, false); } if (!$driver = static::getAvailableDriver($options, $adapters)) { throw new \RuntimeException('No transport driver available.'); } return new Http($options, $driver); } /** * Finds an available http transport object for communication * * @param array|\ArrayAccess $options Options for creating TransportInterface object * @param array|string $default Adapter (string) or queue of adapters (array) to use * * @return TransportInterface|boolean Interface sub-class or boolean false if no adapters are available * * @since 3.0.0 */ public static function getAvailableDriver($options = [], $default = null) { if (\is_null($default)) { $availableAdapters = static::getHttpTransports(); } else { settype($default, 'array'); $availableAdapters = $default; } // Check if there is at least one available http transport adapter if (!\count($availableAdapters)) { return false; } foreach ($availableAdapters as $adapter) { /** @var $class TransportInterface */ $class = __NAMESPACE__ . '\\Transport\\' . ucfirst($adapter) . 'Transport'; if (!class_exists($class)) { $class = 'JHttpTransport' . ucfirst($adapter); } if (class_exists($class) && $class::isSupported()) { return new $class($options); } } return false; } /** * Get the http transport handlers * * @return array An array of available transport handlers * * @since 3.0.0 */ public static function getHttpTransports() { $names = []; $iterator = new \DirectoryIterator(__DIR__ . '/Transport'); /** @type $file \DirectoryIterator */ foreach ($iterator as $file) { $fileName = $file->getFilename(); // Only load for php files. if ($file->isFile() && $file->getExtension() === 'php') { $names[] = substr($fileName, 0, strrpos($fileName, 'Transport.')); } } // Keep alphabetical order across all environments sort($names); // If curl is available set it to the first position if ($key = array_search('Curl', $names)) { unset($names[$key]); array_unshift($names, 'Curl'); } return $names; } }
/home/opticamezl/www/newok/cli/../language/.././libraries/src/Http/HttpFactory.php