Файл: vendor/laravel/framework/src/Illuminate/Redis/Connectors/PredisConnector.php
Строк: 111
<?php
namespace IlluminateRedisConnectors;
use IlluminateContractsRedisConnector;
use IlluminateRedisConnectionsPredisClusterConnection;
use IlluminateRedisConnectionsPredisConnection;
use IlluminateSupportArr;
use IlluminateSupportStr;
use PredisClient;
class PredisConnector implements Connector
{
/**
* Create a new connection.
*
* @param array $config
* @param array $options
* @return IlluminateRedisConnectionsPredisConnection
*/
public function connect(array $config, array $options)
{
$formattedOptions = array_merge(
['timeout' => 10.0], $options, Arr::pull($config, 'options', [])
);
if (isset($config['prefix'])) {
$formattedOptions['prefix'] = $config['prefix'];
}
if (isset($config['host']) && str_starts_with($config['host'], 'tls://')) {
$config['scheme'] = 'tls';
$config['host'] = Str::after($config['host'], 'tls://');
}
return new PredisConnection(new Client($config, $formattedOptions));
}
/**
* Create a new clustered Predis connection.
*
* @param array $config
* @param array $clusterOptions
* @param array $options
* @return IlluminateRedisConnectionsPredisClusterConnection
*/
public function connectToCluster(array $config, array $clusterOptions, array $options)
{
$clusterSpecificOptions = Arr::pull($config, 'options', []);
if (isset($config['prefix'])) {
$clusterSpecificOptions['prefix'] = $config['prefix'];
}
return new PredisClusterConnection(new Client(array_values($config), array_merge(
$options, $clusterOptions, $clusterSpecificOptions
)));
}
}