mirror of
https://gitlab.com/TheGamecraft/c-cms.git
synced 2026-04-25 04:09:11 -04:00
Include Vendor
This commit is contained in:
140
vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php
vendored
Normal file
140
vendor/laravel/framework/src/Illuminate/Redis/RedisManager.php
vendored
Normal file
@@ -0,0 +1,140 @@
|
||||
<?php
|
||||
|
||||
namespace Illuminate\Redis;
|
||||
|
||||
use InvalidArgumentException;
|
||||
use Illuminate\Contracts\Redis\Factory;
|
||||
|
||||
/**
|
||||
* @mixin \Illuminate\Redis\Connections\Connection
|
||||
*/
|
||||
class RedisManager implements Factory
|
||||
{
|
||||
/**
|
||||
* The name of the default driver.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $driver;
|
||||
|
||||
/**
|
||||
* The Redis server configurations.
|
||||
*
|
||||
* @var array
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
/**
|
||||
* The Redis connections.
|
||||
*
|
||||
* @var mixed
|
||||
*/
|
||||
protected $connections;
|
||||
|
||||
/**
|
||||
* Create a new Redis manager instance.
|
||||
*
|
||||
* @param string $driver
|
||||
* @param array $config
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($driver, array $config)
|
||||
{
|
||||
$this->driver = $driver;
|
||||
$this->config = $config;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a Redis connection by name.
|
||||
*
|
||||
* @param string|null $name
|
||||
* @return \Illuminate\Redis\Connections\Connection
|
||||
*/
|
||||
public function connection($name = null)
|
||||
{
|
||||
$name = $name ?: 'default';
|
||||
|
||||
if (isset($this->connections[$name])) {
|
||||
return $this->connections[$name];
|
||||
}
|
||||
|
||||
return $this->connections[$name] = $this->resolve($name);
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve the given connection by name.
|
||||
*
|
||||
* @param string|null $name
|
||||
* @return \Illuminate\Redis\Connections\Connection
|
||||
*
|
||||
* @throws \InvalidArgumentException
|
||||
*/
|
||||
public function resolve($name = null)
|
||||
{
|
||||
$name = $name ?: 'default';
|
||||
|
||||
$options = $this->config['options'] ?? [];
|
||||
|
||||
if (isset($this->config[$name])) {
|
||||
return $this->connector()->connect($this->config[$name], $options);
|
||||
}
|
||||
|
||||
if (isset($this->config['clusters'][$name])) {
|
||||
return $this->resolveCluster($name);
|
||||
}
|
||||
|
||||
throw new InvalidArgumentException("Redis connection [{$name}] not configured.");
|
||||
}
|
||||
|
||||
/**
|
||||
* Resolve the given cluster connection by name.
|
||||
*
|
||||
* @param string $name
|
||||
* @return \Illuminate\Redis\Connections\Connection
|
||||
*/
|
||||
protected function resolveCluster($name)
|
||||
{
|
||||
$clusterOptions = $this->config['clusters']['options'] ?? [];
|
||||
|
||||
return $this->connector()->connectToCluster(
|
||||
$this->config['clusters'][$name], $clusterOptions, $this->config['options'] ?? []
|
||||
);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get the connector instance for the current driver.
|
||||
*
|
||||
* @return \Illuminate\Redis\Connectors\PhpRedisConnector|\Illuminate\Redis\Connectors\PredisConnector
|
||||
*/
|
||||
protected function connector()
|
||||
{
|
||||
switch ($this->driver) {
|
||||
case 'predis':
|
||||
return new Connectors\PredisConnector;
|
||||
case 'phpredis':
|
||||
return new Connectors\PhpRedisConnector;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return all of the created connections.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function connections()
|
||||
{
|
||||
return $this->connections;
|
||||
}
|
||||
|
||||
/**
|
||||
* Pass methods onto the default Redis connection.
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $parameters
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($method, $parameters)
|
||||
{
|
||||
return $this->connection()->{$method}(...$parameters);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user