$value) { $value = $this->decode($value); if (empty($value['time']) || $value['time'] < $deleteSaltsCreatedBefore) { Option::delete($name); $deleted[] = $name; } } return $deleted; } public function getDateString(Date $date, $timezone) { $dateString = Date::factory($date->getTimestampUTC(), $timezone)->toString(); return $dateString; } private function encode($value) { return json_encode($value); } private function decode($value) { return @json_decode($value, true); } public function getSalt($dateString, $idSite) { $fingerprintSaltKey = self::OPTION_PREFIX . (int) $idSite . '_' . $dateString; $salt = Option::get($fingerprintSaltKey); if (!empty($salt)) { $salt = $this->decode($salt); } if (empty($salt['value'])) { $salt = array( 'value' => $this->generateSalt(), 'time' => Date::getNowTimestamp() ); Option::set($fingerprintSaltKey, $this->encode($salt)); } return $salt['value']; } }