mirror of
https://github.com/alchemy-fr/Phraseanet.git
synced 2025-10-07 18:14:35 +00:00
60 lines
1.6 KiB
PHP
60 lines
1.6 KiB
PHP
<?php
|
|
|
|
namespace Alchemy\Phrasea\Utilities;
|
|
|
|
use Alchemy\Phrasea\Core\Configuration\PropertyAccess;
|
|
use GuzzleHttp\Client;
|
|
|
|
class NetworkProxiesConfiguration
|
|
{
|
|
private $congif;
|
|
|
|
public function __construct(PropertyAccess $configuration)
|
|
{
|
|
$this->congif = $configuration;
|
|
}
|
|
|
|
/**
|
|
* Get only the http-proxy defined in the configuration
|
|
*
|
|
* @return string|null
|
|
*/
|
|
public function getHttpProxyConfiguration()
|
|
{
|
|
if ($this->congif->has(['network-proxies', 'http-proxy', 'enabled']) && $this->congif->get(['network-proxies', 'http-proxy', 'enabled'])) {
|
|
$httpProxy = $this->congif->get(['network-proxies', 'http-proxy']);
|
|
|
|
$proxy = '';
|
|
// if user and pass defined
|
|
// proxy is like this
|
|
// user:password@IP:PORT
|
|
if (!empty($httpProxy['user']) && !empty($httpProxy['password'])) {
|
|
$proxy .= $httpProxy['user'] . ':' . $httpProxy['password'];
|
|
}
|
|
|
|
if (!empty($httpProxy['host']) && !empty($httpProxy['port'])) {
|
|
if ($proxy != '') {
|
|
$proxy .= '@';
|
|
}
|
|
$proxy .= $httpProxy['host'] . ':' . $httpProxy['port'];
|
|
}
|
|
|
|
return ($proxy == '') ? null : $proxy;
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
//TODO: get ftp proxy and socket proxy
|
|
|
|
public function getClientWithOptions(array $options = [])
|
|
{
|
|
if ($this->getHttpProxyConfiguration() != null) {
|
|
$options = array_merge($options, ['proxy' => $this->getHttpProxyConfiguration()]);
|
|
}
|
|
|
|
return new Client($options);
|
|
}
|
|
|
|
}
|