mirror of
https://github.com/predis/predis.git
synced 2026-08-22 19:51:02 +00:00
5b7504b069
A profile is not needed to create instances of basic initialization commands such as AUTH (authentication) and SELECT (database selection) since they do not need prefixing and other stuff. If needed, developers can still extend the base connection factory to make it use a server profile and configure the client to use it using options.
54 lines
1.3 KiB
PHP
54 lines
1.3 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of the Predis package.
|
|
*
|
|
* (c) Daniele Alessandri <suppakilla@gmail.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
namespace Predis\Configuration;
|
|
|
|
use InvalidArgumentException;
|
|
use Predis\Connection\ConnectionFactory;
|
|
use Predis\Connection\ConnectionFactoryInterface;
|
|
|
|
/**
|
|
* Configures a connection factory used by the client to
|
|
* create new connection instances to single Redis nodes.
|
|
*
|
|
* @author Daniele Alessandri <suppakilla@gmail.com>
|
|
*/
|
|
class ConnectionFactoryOption implements OptionInterface
|
|
{
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function filter(OptionsInterface $options, $value)
|
|
{
|
|
if ($value instanceof ConnectionFactoryInterface) {
|
|
return $value;
|
|
} else if (is_array($value)) {
|
|
$factory = $this->getDefault($options);
|
|
|
|
foreach ($value as $scheme => $initializer) {
|
|
$factory->define($scheme, $initializer);
|
|
}
|
|
|
|
return $factory;
|
|
} else {
|
|
throw new InvalidArgumentException('Invalid value for the connections option');
|
|
}
|
|
}
|
|
|
|
/**
|
|
* {@inheritdoc}
|
|
*/
|
|
public function getDefault(OptionsInterface $options)
|
|
{
|
|
return new ConnectionFactory();
|
|
}
|
|
}
|