Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions src/ArrayCache.php
Original file line number Diff line number Diff line change
Expand Up @@ -45,11 +45,11 @@ public function __construct($limit = null)
public function get($key, $default = null)
{
// delete key if it is already expired => below will detect this as a cache miss
if (isset($this->expires[$key]) && $this->expires[$key] < microtime(true)) {
if (isset($this->expires[$key]) && $this->expires[$key] < \microtime(true)) {
unset($this->data[$key], $this->expires[$key]);
}

if (!array_key_exists($key, $this->data)) {
if (!\array_key_exists($key, $this->data)) {
return Promise\resolve($default);
}

Expand All @@ -70,22 +70,22 @@ public function set($key, $value, $ttl = null)
// sort expiration times if TTL is given (first will expire first)
unset($this->expires[$key]);
if ($ttl !== null) {
$this->expires[$key] = microtime(true) + $ttl;
asort($this->expires);
$this->expires[$key] = \microtime(true) + $ttl;
\asort($this->expires);
}

// ensure size limit is not exceeded or remove first entry from array
if ($this->limit !== null && count($this->data) > $this->limit) {
if ($this->limit !== null && \count($this->data) > $this->limit) {
// first try to check if there's any expired entry
// expiration times are sorted, so we can simply look at the first one
reset($this->expires);
$key = key($this->expires);
\reset($this->expires);
$key = \key($this->expires);

// check to see if the first in the list of expiring keys is already expired
// if the first key is not expired, we have to overwrite by using LRU info
if ($key === null || $this->expires[$key] > microtime(true)) {
reset($this->data);
$key = key($this->data);
if ($key === null || $this->expires[$key] > \microtime(true)) {
\reset($this->data);
$key = \key($this->data);
}
unset($this->data[$key], $this->expires[$key]);
}
Expand Down