mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-08 22:18:28 +03:00
Moved cache drivers outside core to extensions (plugins)
This commit is contained in:
parent
d5690fc579
commit
4fc04648cf
267 changed files with 39 additions and 64 deletions
69
plugins/cache-redis/Predis/Configuration/ProfileOption.php
Normal file
69
plugins/cache-redis/Predis/Configuration/ProfileOption.php
Normal file
|
|
@ -0,0 +1,69 @@
|
|||
<?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 Predis\Profile\Factory;
|
||||
use Predis\Profile\ProfileInterface;
|
||||
use Predis\Profile\RedisProfile;
|
||||
|
||||
/**
|
||||
* Configures the server profile to be used by the client to create command
|
||||
* instances depending on the specified version of the Redis server.
|
||||
*
|
||||
* @author Daniele Alessandri <suppakilla@gmail.com>
|
||||
*/
|
||||
class ProfileOption implements OptionInterface
|
||||
{
|
||||
/**
|
||||
* Sets the commands processors that need to be applied to the profile.
|
||||
*
|
||||
* @param OptionsInterface $options Client options.
|
||||
* @param ProfileInterface $profile Server profile.
|
||||
*/
|
||||
protected function setProcessors(OptionsInterface $options, ProfileInterface $profile)
|
||||
{
|
||||
if (isset($options->prefix) && $profile instanceof RedisProfile) {
|
||||
// NOTE: directly using __get('prefix') is actually a workaround for
|
||||
// HHVM 2.3.0. It's correct and respects the options interface, it's
|
||||
// just ugly. We will remove this hack when HHVM will fix re-entrant
|
||||
// calls to __get() once and for all.
|
||||
|
||||
$profile->setProcessor($options->__get('prefix'));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function filter(OptionsInterface $options, $value)
|
||||
{
|
||||
if (is_string($value)) {
|
||||
$value = Factory::get($value);
|
||||
$this->setProcessors($options, $value);
|
||||
} elseif (!$value instanceof ProfileInterface) {
|
||||
throw new \InvalidArgumentException('Invalid value for the profile option.');
|
||||
}
|
||||
|
||||
return $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function getDefault(OptionsInterface $options)
|
||||
{
|
||||
$profile = Factory::getDefault();
|
||||
$this->setProcessors($options, $profile);
|
||||
|
||||
return $profile;
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue