| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859 |
- <?php
- namespace Illuminate\Redis\Connectors;
- use Illuminate\Contracts\Redis\Connector;
- use Illuminate\Redis\Connections\PredisClusterConnection;
- use Illuminate\Redis\Connections\PredisConnection;
- use Illuminate\Support\Arr;
- use Illuminate\Support\Str;
- use Predis\Client;
- class PredisConnector implements Connector
- {
- /**
- * Create a new connection.
- *
- * @param array $config
- * @param array $options
- * @return \Illuminate\Redis\Connections\PredisConnection
- */
- 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 \Illuminate\Redis\Connections\PredisClusterConnection
- */
- 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
- )));
- }
- }
|