Skip to content
Snippets Groups Projects

#3457016 - Fix Circular Ref

2 files
+ 37
14
Compare changes
  • Side-by-side
  • Inline
Files
2
@@ -3,7 +3,8 @@
namespace Drupal\lightning_scheduler;
use Drupal\Component\Datetime\Time as BaseTime;
use Drupal\Core\State\StateInterface;
use Drupal\Core\KeyValueStore\KeyValueStoreInterface;
use Drupal\Core\KeyValueStore\KeyValueFactoryInterface;
use Symfony\Component\HttpFoundation\RequestStack;
/**
@@ -12,30 +13,57 @@ use Symfony\Component\HttpFoundation\RequestStack;
class Time extends BaseTime {
/**
* The state service.
* The key value store to use.
*
* @var \Drupal\Core\State\StateInterface
* @var \Drupal\Core\KeyValueStore\KeyValueStoreInterface
*/
private $state;
private $keyValueStore;
/**
* Time constructor.
*
* @param \Symfony\Component\HttpFoundation\RequestStack $request_stack
* The request stack.
* @param \Drupal\Core\State\StateInterface $state
* The state service.
* @param \Drupal\Core\KeyValueStore\KeyValueFactoryInterface $key_value_factory
* The key value store to use.
*/
public function __construct(RequestStack $request_stack, StateInterface $state) {
parent::__construct($request_stack);
$this->state = $state;
$this->keyValueStore = $key_value_factory->get('state');
}
/**
* {@inheritdoc}
*/
public function getRequestTime() {
return $this->state->get('lightning_scheduler.request_time', parent::getRequestTime());
return $this->get('lightning_scheduler.request_time', parent::getRequestTime());
}
/**
* {@inheritdoc}
*/
public function get($key, $default = NULL) {
$values = $this->getMultiple([
$key,
]);
return isset($values[$key]) ? $values[$key] : $default;
}
/**
* {@inheritdoc}
*/
public function getMultiple(array $keys) {
$values = [];
$load = $keys;
if ($load) {
$loaded_values = $this->keyValueStore
->getMultiple($load);
foreach ($load as $key) {
if (isset($loaded_values[$key]) || array_key_exists($key, $loaded_values)) {
$values[$key] = $loaded_values[$key];
}
}
}
return $values;
}
}
Loading