You've already forked joomla_test
first commit
This commit is contained in:
103
libraries/joomla/http/factory.php
Normal file
103
libraries/joomla/http/factory.php
Normal file
@ -0,0 +1,103 @@
|
||||
<?php
|
||||
/**
|
||||
* @package Joomla.Platform
|
||||
* @subpackage HTTP
|
||||
*
|
||||
* @copyright Copyright (C) 2005 - 2013 Open Source Matters, Inc. All rights reserved.
|
||||
* @license GNU General Public License version 2 or later; see LICENSE
|
||||
*/
|
||||
|
||||
defined('JPATH_PLATFORM') or die;
|
||||
|
||||
/**
|
||||
* HTTP factory class.
|
||||
*
|
||||
* @package Joomla.Platform
|
||||
* @subpackage HTTP
|
||||
* @since 12.1
|
||||
*/
|
||||
class JHttpFactory
|
||||
{
|
||||
/**
|
||||
* method to receive Http instance.
|
||||
*
|
||||
* @param JRegistry $options Client options object.
|
||||
* @param mixed $adapters Adapter (string) or queue of adapters (array) to use for communication.
|
||||
*
|
||||
* @return JHttp Joomla Http class
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public static function getHttp(JRegistry $options = null, $adapters = null)
|
||||
{
|
||||
if (empty($options))
|
||||
{
|
||||
$options = new JRegistry;
|
||||
}
|
||||
return new JHttp($options, self::getAvailableDriver($options, $adapters));
|
||||
}
|
||||
|
||||
/**
|
||||
* Finds an available http transport object for communication
|
||||
*
|
||||
* @param JRegistry $options Option for creating http transport object
|
||||
* @param mixed $default Adapter (string) or queue of adapters (array) to use
|
||||
*
|
||||
* @return JHttpTransport Interface sub-class
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public static function getAvailableDriver(JRegistry $options, $default = null)
|
||||
{
|
||||
if (is_null($default))
|
||||
{
|
||||
$availableAdapters = self::getHttpTransports();
|
||||
}
|
||||
else
|
||||
{
|
||||
settype($default, 'array');
|
||||
$availableAdapters = $default;
|
||||
}
|
||||
// Check if there is available http transport adapters
|
||||
if (!count($availableAdapters))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
foreach ($availableAdapters as $adapter)
|
||||
{
|
||||
$class = 'JHttpTransport' . ucfirst($adapter);
|
||||
|
||||
if ($class::isSupported())
|
||||
{
|
||||
return new $class($options);
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the http transport handlers
|
||||
*
|
||||
* @return array An array of available transport handlers
|
||||
*
|
||||
* @since 12.1
|
||||
*/
|
||||
public static function getHttpTransports()
|
||||
{
|
||||
$names = array();
|
||||
$iterator = new DirectoryIterator(__DIR__ . '/transport');
|
||||
foreach ($iterator as $file)
|
||||
{
|
||||
$fileName = $file->getFilename();
|
||||
|
||||
// Only load for php files.
|
||||
// Note: DirectoryIterator::getExtension only available PHP >= 5.3.6
|
||||
if ($file->isFile() && substr($fileName, strrpos($fileName, '.') + 1) == 'php')
|
||||
{
|
||||
$names[] = substr($fileName, 0, strrpos($fileName, '.'));
|
||||
}
|
||||
}
|
||||
|
||||
return $names;
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user